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解释器.主要是,这个 ...
随机推荐
- Hyperledger Fabric 2.2 学习笔记:测试网络test-network
写在前面 最近被Hyperledger Fabric折磨,归根结底还是因为自己太菜了qwq.学习路漫漫,笔记不能少.下面的步骤均是基于已经成功搭建了Fabric2.2环境,并且拉取fabric-sam ...
- XCTF练习题---CRYPTO---safer-than-rot13
XCTF练习题---CRYPTO---safer-than-rot13 flag:no_this_is_not_crypto_my_dear 解题步骤: 1.观察题目,下载附件 2.打开后发现是个文件 ...
- XCTF练习题---MISC---Test-flag-please-ignore
XCTF练习题---MISC---Test-flag-please-ignore flag:flag{hello_world} 解题步骤: 1.观察题目,下载附件 2.打开文件,发现又是一个没有名字的 ...
- Atlassian应对CVE-2022-22963,CVE-2022-22965的常见问题
CVE-2022-22965 常见问题解答 基本信息 已发现 Spring Framework 中的关键远程代码执行漏洞 CVE-2022-22965.根据 Spring 的安全公告,此漏洞会影响在 ...
- 数据结构_C语言_单链表
# include <stdio.h> # include <stdbool.h> # include <malloc.h> typedef int DataTyp ...
- 手把手教你在Linux中快速检测端口的 3 个小技巧
一个执着于技术的公众号 前言 无论是要解决网络连接问题还是配置防火墙,第一件事是要检查系统实际打开了哪些端口. 本文介绍了几种快速查找 Linux 系统上哪些端口向外部开放的方法. 什么是开放端口 监 ...
- linux篇-linux 下tomcat服务每天定时启动
1l先准备一个脚本 #!/bin/sh #./etc/profile export JAVA_HOME=/usr/java/jdk1.6.0_45 sh /home/tomcat-bingchuang ...
- CSS基础学习(一)
1.设置背景颜色:background-color 例:background-color:#d0e4fe;或background-color:blue; 2.字体颜色·:color 例:color:r ...
- Net6 Xunit 集成测试
对于单元测试.集成测试大部分开发的朋友都懒得去写,因为这要耗费精力去设计去开发,做完项目模块直接postman 调用测试(当然这是一个选择,开发也中经常用到),但是如果测试需要多样化数据,各种场景模拟 ...
- webpack.config.js和vue.config.js的区别
webpack.config.js是webpack的配置文件,所有使用webpack作为打包工具的项目都可以使用,vue的项目可以使用,react的项目也可以使用. vue.config.js是vue ...