【Oracle云】使用 boto3 访问 OCI 对象存储 (AWS S3协议兼容)

在现代云计算环境中,S3(Simple Storage Service)协议已经成为云对象存储的事实标准。它提供了简单、可扩展、高度耐用的存储解决方案,得到了广泛应用。Oracle Cloud Infrastructure(OCI)秉承着开放性和灵活性的理念,为用户提供了兼容AWS S3协议的对象存储服务。

本文将介绍如何使用 boto3,AWS SDK for Python,通过S3协议访问OCI对象存储。能够在多云环境中实现高度的可移植性,利用协议的兼容性轻松构建跨云的存储方案。

OCI Compartment:

OCI compartment 是 Oracle Cloud Infrastructure(OCI)中的一个概念,它类似于 Kubernetes 中的 namespace。它们的作用主要是组织和进行资源的逻辑隔离。

在 OCI 中,compartment 用于组织和管理 OCI 资源,例如计算实例、存储卷、网络资源等。每个 compartment 都有自己的资源层次结构,可以将相关资源组织在一起,以便更好地管理和控制访问权限。

AWS AK SK:

AWS 认证的 ak,sk 是指 AWS Access Key 和 Secret Access Key。这是 AWS 身份验证过程中最常见的一种认证方式。

  • Access Key(访问密钥)是一个由 AWS 生成的唯一标识符,用于标识和验证对 AWS 资源的访问权限。它类似于用户名。
  • Secret Access Key(秘密访问密钥)是与 Access Key 相关联的机密字符串,用于对身份进行验证。它类似于密码。

Boto3: 

Boto3 是 AWS 的 Python SDK,主要用于与 AWS 服务进行交互。它提供了与 AWS 服务的集成和操作的功能。在对象存储场景中,OCI 提供 S3协议的兼容,可以使用 boto3 直接操作对象存。

1 OCI 兼容 AWS S3 的使用流程

1.1 生成 AK, SK

  • 在用户设置界面中(控制台右上),选择 User 配置
  • 找到Customer Secret Keys
  • 生成 secret key

键入生成 Key 的名称,示例为:s3test

生成 KEY

注意:生成的 SK 只显示一次

成功生成 KEY 后即可看到 AK

1.2 OCI Endpoint 命名方式参考

需要注意,在 OCI 中使用 S3 协议对象存储,Endpoint 域名区别于AWS, 示例:

可参考信息:

对象存储 namespace

Understanding Object Storage Namespaces

region信息

Regions and Availability Domains

# 配置中 region 和 namespace_name {bucketnamespace}.compat.objectstorage.{region}.oraclecloud.com

1.3 兼容测试

可使用 AWS cli 操作 OCI 对象存储,验证核心功能

export AWS_ACCESS_KEY_ID=507dee8xxxxxxxxxxxxxxxxxxxxxxx
export AWS_SECRET_ACCESS_KEY=vIrC+BaYxxxxxxxxxxxxxxxxxxxno=
export AWS_DEFAULT_REGION=eu-frankfurt-1# 通过s3协议调用预签名功能
aws s3 presign  s3://bucket-20230516-1236/1213.txt  --endpoint-url  https://xxxx.compat.objectstorage.eu-frankfurt-1.oraclecloud.com

2 修改对象存储的 Namespace

注意:AWS没有 Compartment 的概念,所有使用兼容 AWS 的 SDK,默认访问根 compartment (root) 的对象存储桶。

具体修改的位置在 用户配置 --> 租户 --> edit object storage settings 中进行设置,如下操作截图:

3 Demo

通过 boto3 查看 eu-frankfurt-1 区域 所有 s3 存储桶的名称,示例如下:

import boto3s3 = boto3.resource('s3',aws_access_key_id="507dee8d01xxxxxxxxxxxxxxxxxxx4", # AKaws_secret_access_key="vIrC+xxxxxxxxxxxxxxxxxxxxxxxno=", # SKregion_name="eu-frankfurt-1", # Region 信息endpoint_url="https://cnmxxxxxxxhxmt.compat.objectstorage.eu-frankfurt-1.oraclecloud.com" # 兼容域名
)# Print out the bucket names
for bucket in s3.buckets.all():print(bucket.name)

4 参考

对象存储 namespace

Understanding Object Storage Namespaces

region信息

Regions and Availability Domains

安装 AWS cli

Install or update the latest version of the AWS CLI - AWS Command Line Interface

🚀 炸鸡物料库 🚀

🔍 内容定位: IT技术领域,云计算、云原生、DevOps 和 AI 等相关的技术资讯、实践和经验分享。面向开发、系统和云计算,提供实用的技术内容。

🎯 目标受众: 面向开发者、系统管理员和云计算从业者,提供实用的技术内容。

🗓️ 更新频率:每周更新,每次分享都为您带来有价值的技术内容。

🤝 互动与反馈: 鼓励读者留言、评论,有问题随时提问,我们将积极互动并提供帮助。

💌 订阅方式: 扫描二维码或搜索“炸鸡物料库”关注,不错过每一篇精彩内容。

🌐 合作与分享: 如果您有技术分享或合作计划,欢迎联系我们,共同成长!

​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/660795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++初阶 类和对象(补充)

目录 一、友元 1.1什么是友元? 1.2如何使用友元? 1.3使用友元 1.4使用友元注意事项 二、初始化列表 2.1什么是初始化列表? 2.2为什么要有初始化列表? 2.3使用初始化列表 2.4注意事项 一、友元 1.1什么是友元? 友元是一…

大数据知识图谱之深度学习——基于BERT+LSTM+CRF深度学习识别模型医疗知识图谱问答可视化系统

文章目录 大数据知识图谱之深度学习——基于BERTLSTMCRF深度学习识别模型医疗知识图谱问答可视化系统一、项目概述二、系统实现基本流程三、项目工具所用的版本号四、所需要软件的安装和使用五、开发技术简介Django技术介绍Neo4j数据库Bootstrap4框架Echarts简介Navicat Premiu…

Windows Server 2003 DNS服务器搭建

系列文章目录 目录 系列文章目录 文章目录 前言 一、DNS服务器是什么? 二、配置服务器 1.实验环境搭建 2.服务器搭建 3)安装Web服务器和DNS服务器 4)查看安装是否成功 5)这里直接配置DNS服务器了,Web服务器如何配置我已经发布过了 文章目录 Windows Serve…

长时间佩戴骨传导耳机会损害听力吗?骨传导耳机有什么优点?

如果是正常的使用,是不会对损伤听力的,如果错误的使用,比如说高音量使用,长时间也会出现一定的危害,而且骨传导耳机相比于传统耳机,其优点也要多一些,下面一起看下骨传导耳机都有哪些优点吧。 佩…

iOS 文件分割保存加密

demo只是验证想法,没有做很多异常处理 默认文件是大于1KB的,对于小于1KB的没有做异常处理demo中文件只能分割成2个,可以做成可配置的N个文件分割拼接还可以使用固定的二进制数据,拼接文件开头或结尾 不论哪种拼法,目的…

redis下载与安装教程(centos下)

文章目录 一,redis下载1.1上传到linux服务器上 二,redis安装2.1 安装依赖2.2 解压包2.3 编译并安装2.4 指定配置启动2.5 设置redis开机自启 一,redis下载 官网: https://redis.io1.1上传到linux服务器上 我用filezila上传到/us…

LabVIEW核能设施监测

LabVIEW核能设施监测 在核能领域,确保设施运行的安全性和效率至关重要。LabVIEW通过与硬件的紧密集成,为高温气冷堆燃料装卸计数系统以及脉冲堆辐射剂量监测与数据管理系统提供了解决方案。这些系统不仅提高了监测和管理的精确度,也保证了核…

Solidworks 与 MATLAB 联合仿真

本文主要讲解了“MATLAB与SolidWorks的联合仿真怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MATLAB与SolidWorks的联合仿真怎么实现”吧! 下载插件。 1、…

Pyth 预言机: 它们如何影响Hover?

所有链上借贷市场都使用一种称为“oracle(预言机)”的服务,为dApp提供代币定价。Oracle是一个数据系统,将链下信息(例如KuCoin上的BTC/USDT价格)传递到链上合约。从那里,应用程序可以支付一小笔…

react 之 UseMemo

useMemo 看个场景 下面我们的本来的用意是想基于count的变化计算斐波那契数列之和,但是当我们修改num状态的时候,斐波那契求和函数也会被执行,显然是一种浪费 // useMemo // 作用:在组件渲染时缓存计算的结果import { useState …

C#中的WebApi响应Accept头,自动返回xml或者json

Global.asax.cs中的Application_Start方法添加 GlobalConfiguration.Configuration.Formatters.Clear(); GlobalConfiguration.Configuration.Formatters.Add(new XmlMediaTypeFormatter()); GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter())…

红队渗透靶机:LEMONSQUEEZY: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb 目录扫描 1、dirsearch 2、gobuster WEB phpmyadmin wordpress wpscan 登录wordpress 登录phpmyadmin 命令执行 反弹shell 提权 get user.txt 信息收集 本地提权 信息收集 1、arp ┌──(root㉿ru)-[~…

进程间通讯方式

管道: mkfifo 和匿名管道。主要在父子进程上面进行进程间通信比较方便。实际上存储在内核缓存区里面。 无论是匿名管道,还是命名管道,在内核都是一个文件。只要是文件就要有一个 inode。这里我们又用到了特殊 inode、字符设备、块设备,其实都是这种特殊的 inode。 在这种…

CANoe64.exe - 系统错误 找不到VCRUNTIME140_ 1.dll

环境: CANoe12 Win10 专业版 问题描述: CANoe64.exe - 系统错误 找不到VCRUNTIME140_ 1.dll 解决方案: VCRUNTIME140_1.dll是Microsoft Visual C Redistributable for Visual Studio 2015的一部分。它是一个动态链接库(DLL&a…

[网络安全]IIS---FTP服务器 、serverU详解

一 . FTP服务器(File Transfor Protocol) : 协议:文件传输协议 端口号:TCP: 20(数据) / 21(控制) 二 . FTP工作方式: 1.主动模式 : (FTP服务器21端口与FTP客户端产生的随机端口先建立连接 建立连接后,再使用FTP服务器21端口与FTP客户端创建的一个新的随机端口进行发送…

ElementUI安装与使用指南

Element官网-安装指南 提醒一下:下面实例讲解是在Mac系统演示的; 一、开发环境配置 电脑需要先安装好node.js和vue2或者vue3 安装Node.js Node.js 中文网 安装node.js命令:brew install node node.js安装完后,输入&#xff1…

大数据开发之离线数仓项目(用户行为采集平台)(可面试使用)

第 1 章:数据仓库概念 数据仓库,是为企业指定决策,提供数据支持的,可以帮助企业,改进业务流程、提高产品质量等。 数据仓库的输入数据通常包括:业务数据、用户行为数据和爬虫数据等。 业务数据&#xff1a…

pinctrl子系统与gpio子系统实验-对驱动进行测试

一. 简介 前面几篇文章学习了在设备树文件中创建设备节点信息(基于gpio子系统与pinctrl子系统),驱动代码的实现。文章地址如下: pinctrl子系统与gpio子系统实验-向设备树文件添加Led设备节点-CSDN博客 pinctrl子系统与gpio子系…

开源:基于Vue3.3 + TS + Vant4 + Vite5 + Pinia + ViewPort适配..搭建的H5移动端开发模板

vue3.3-Mobile-template 基于Vue3.3 TS Vant4 Vite5 Pinia ViewPort适配 Sass Axios封装 vconsole调试工具,搭建的H5移动端开发模板,开箱即用的。 环境要求: Node:16.20.1 pnpm:8.14.0 必须装上安装pnpm,没装的看这篇…

使用ChatGPT学习大象机器人六轴协作机械臂mechArm

引言 我是一名机器人方向的大学生,近期学校安排自主做一个机器人方面相关的项目。学校给我们提供了一个小型的六轴机械臂,mechArm 270M5Stack,我打算使用ChatGPT让它来辅助我学习如何使用这个机械臂并且做一个demo。 本篇文章将记录我是如何使…