Oracle oci python sdk简单使用
听说Oracle有个oracle always free计划,所以赶紧申请了个Oracle Cloud的账号,主要是用来FQ用的,之前用过Google的,不过只有1年的期限,由此看来这个很吸引人,搭建的V兔Ray也算稳定,看了看其它可用的东西,自治数据库(ADW)看起来也不错,不过个人感觉更适合大公司吧,目前只是把个人的数据库文件放上面,做个备份。
另外一个就是对象存储了,不过空间有点小,暂时我也用不到,主要是熟悉一下oci的SDK,体验一下Oracle的服务,上面说的自治数据库(ADW)是用的cx_Oracle库,当然这个库也是基于oci的,下面就记录一下oci的简单用法
1. 添加API秘钥
这一步很简单,主要就是会生成一些配置参数,然后把这些参数复制一下,粘贴到对应操作系统的~/.oci/config文件下(需要自行创建),除了会自动生成这个配置,还会让你下载一个私钥,下载完成后,放在和config文件相同路径即可,然后需要在config文件内修改最后一行内容,填写私钥的名称,最好填写私钥的绝对路径


2.代码
先装一下库,pip install oci,最需要注意的是代码中的compartment_id参数,我找了好半天,代码中有注释说明
#coding:utf-8
'''
@version: python3.6
@author: ‘eric‘
@license: Apache Licence
@contact: steinven@qq.com
@software: PyCharm
@file: oci_demo.py
@time: 2021/5/19 10:14
'''
import logging
from oci.object_storage.models import CreateBucketDetails
logging.getLogger().setLevel('INFO')
import oci
config = oci.config.from_file()
object_storage_client = oci.object_storage.ObjectStorageClient(config)
bucket_name = 'test_bucket'
upload_file = 'upload_example_file'
#此compartment_id至在【总菜单】--【身份和安全】--【身份】--【区间】--【对应的跟区间详情】--【ocid】
compartment_id="ocid1.tenancy.oc1..aaaaaaaaonmcrwabeoqpgnnsqkz4k6buf25p5i24sub3duct3iwqesb56roq"
#获取命名空间
name_space = object_storage_client.get_namespace().data
logging.info('【name_space】:%s'%name_space)
#获取Bucket列表
bucket_list = object_storage_client.list_buckets(name_space,compartment_id).data
logging.info('【bucket_list】:%s'%bucket_list)
#新建Bucket
request = CreateBucketDetails()
request.compartment_id = compartment_id
request.name = bucket_name
bucket = object_storage_client.create_bucket(name_space, request)
logging.info('Create Bucket:%s'%bucket.data)
# 上传
with open(upload_file, 'rb') as f:
obj = object_storage_client.put_object(name_space,bucket_name, upload_file, f)
#文件列表
objects_list = object_storage_client.list_objects(name_space,bucket_name).data
logging.info('【objects_list】:%s'%objects_list)
#下载
with open('dl.file','wb') as f:
get_obj = object_storage_client.get_object(name_space,bucket_name, objects_list.objects[0].name)
for chunk in get_obj.data.raw.stream(1024 * 1024, decode_content=False):
f.write(chunk)
# 删除文件
object_storage_client.delete_object(name_space,bucket_name,upload_file)
# 删除Bucket
object_storage_client.delete_bucket(name_space,bucket_name)
Oracle oci python sdk简单使用的更多相关文章
- Idea安装Python插件并配置Python SDK
第一步:在help/about中查看IDEA版本,作者IDEA 15.0.2 第二步:在http://plugins.jetbrains.com/plugin/631中下载python-143.116 ...
- Python 实现简单的 Web
简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...
- 用 python实现简单EXCEL数据统计
任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_ ...
- python开启简单webserver
python开启简单webserver linux下面使用 python -m SimpleHTTPServer 8000 windows下面使用上面的命令会报错,Python.Exe: No Mod ...
- Python开发简单爬虫 - 慕课网
课程链接:Python开发简单爬虫 环境搭建: Eclipse+PyDev配置搭建Python开发环境 Python入门基础教程 用Eclipse编写Python程序 课程目录 第1章 课程介绍 ...
- 七牛云存储Python SDK使用教程 - 上传策略详解
文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k ...
- python使用简单http协议来传送文件
python使用简单http协议来传送文件!在ubuntu环境下,局域网内可以使用nc来传送文件,也可以使用基于Http协议的方式来下载文件我们可以使用python -m SimpleHTTPServ ...
- Python超简单的HTTP服务器
Python超简单的HTTP服务器 安装了python就可以 python -m SimpleHTTPServer 执行这一个命令即可实现一个HTTP服务器,将当前目录设为HTTP服务目录,可以通过h ...
- <Chapter 2>2-1-1.安装Python SDK
App Engine包含两个Python运行时环境:一个基于Python2.5的传统环境,以及一个运行Python2.7的新环境.这个新环境不仅仅是有一个轻微的新版本的Python解释器.主要是,这个 ...
随机推荐
- Luffy /4/ 多方式登录接口&登录注册前端页面
目录 Luffy /4/ 多方式登录接口&登录注册前端页面 腾讯云短信 登录注册前端页面 如何实现点击登录或图片进行跳转 登录注册前端页面实现 Login.vue Register.vue H ...
- data structure assignment problem record
Question1: Similar to pause command in linux read -n 1 Question2 read : Illegal option -n 原因为ubuntu ...
- 《Java编程思想》读书笔记(二)
三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第一章到第十章的内容,这一次记录的是第 ...
- python之函数的进阶
1.名称空间: 定义:用来存放名字的(变量,函数名,类名,引入的模块名) 分类: 内置名称空间:python解释器提供好的一些内置内容 全局名称空间:py文件中自己写的变量 局部名称空间:执行函数时会 ...
- Rainbond结合NeuVector实践容器安全管理
前言 Rainbond 是一个云原生应用管理平台,使用简单,不需要懂容器.Kubernetes和底层复杂技术,支持管理多个Kubernetes集群,和管理企业应用全生命周期.但是随着云原生时代的一点点 ...
- controller-tool的简单使用
介绍 在上一篇code-generator简单介绍中重点介绍了如何使用code-generator来自动生成代码,通过自动生成的代码可以帮助我们像访问k8s内置资源那样来操作我们的CRD,其实就是帮助 ...
- arts-week11
Algorithm 69. Sqrt(x) - LeetCode Review Building a network attached storage device with a Raspberry ...
- 用Repo管理自己的本地仓库
AOSP使用Repo工具管理项目源码.而Repo工具则依赖一个名叫manifest的git仓库来记录Android源码中都包含哪些子仓库. 进入Android源码根目录下的.repo目录,可以看到ma ...
- 文件操作(Java)
学习内容:文件操作 1.输入流:InputStream类是字节输入流的抽象类,常用的一些方法有: raed()方法:从输入流中读取数据的下一个字节 reset()方法:将输入指针返回到当 ...
- 上半年最中意的 GitHub 更新「GitHub 热点速览 v.22.21」
2022 年的热点速览加入 GitHub 产品动态之后,这次的图片显示是最得我意的,因为可以提升图片查看人的看片体验.而 GitHub 社区方面,GitHub 官方发布了部分开源项目的新版本.与此同时 ...