听说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)

最新文章

  1. eclipse中如何打jar包
  2. 用opencv的traincascade训练检测器
  3. 【POJ 3243】Clever Y 拓展BSGS
  4. apache 配置反向代理服务器
  5. 使用strace工具故障排查的5种简单方法
  6. Core Java Volume I — 5.1. Classes, Superclasses, and Subclasses
  7. Python基础 初识Python
  8. OSG中找到特定节点的方法(转)
  9. Socket.io 0.7 – Sending messages to individual clients
  10. MVC5框架解析之MvcHandler
  11. Vijos1386 IOI2007 矿工配餐 动态规划
  12. JavaEmail
  13. 线段树解Insertion Sort Advanced Analysis
  14. 谷歌Cartographer学习(1)-快速安装测试(转载)
  15. couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
  16. [django1.6]跑批任务错误(2006, 'MySQL server has gone away')
  17. Elasticsearch结构化搜索_在案例中实战使用term filter来搜索数据
  18. 【带着canvas去流浪(4)】绘制散点图
  19. WebPackBrows
  20. Quartz.net设置任务中同时最多运行一个实例 [DisallowConcurrentExecution]

热门文章

  1. Git在项目中使用技巧
  2. 对象、Map、Set、WeakMap、WeakSet
  3. python网络自动化ncclient模块,netconf协议检索与下发交换机配置
  4. postman 脚本和变量
  5. Python写安全小工具-TCP全连接端口扫描器
  6. CefSharp 白屏问题
  7. 在linux上开启酸酸乳,未完待续
  8. Mysql优化基础之Explain工具
  9. C++调用C#的动态库dll
  10. python求最大公约数和最小公倍数