python boto和boto3操作bucket的示例


Posted in Python onOctober 30, 2020

boto操作

import datetime

import boto.s3.connection
from boto.s3.key import Key
conn = boto.connect_s3(
  aws_access_key_id="123456",
  aws_secret_access_key="123456",
  host="127.0.0.1",
  port=8080,
  is_secure=False,
  calling_format=boto.s3.connection.OrdinaryCallingFormat(),
)

str_bucket_name = "bucket_test"
conn.create_bucket(str_bucket_name) # 创建bucket

for bucket in conn.get_all_buckets(): # 获取所有bucket
  # 将实际转为本地时间
  print({"name": bucket.name, "create_date": str(datetime.datetime.strptime(bucket.creation_date, "%Y-%m-%dT%H:%M:%S.%fZ") + datetime.timedelta(hours=8))})


# 删除指定的bucket
for bucket in conn.get_all_buckets():
  if bucket.name == str_bucket_name:
    for key in bucket.list(): # 必须将bucket里清空后,才能删除掉对应的bucket
      bucket.delete_key(key.name)
    conn.delete_bucket(bucket.name)
    break

# 存储文件流或字符串中的数据
key = Key('hello.txt')

key.set_contents_from_file('/tmp/hello.txt')

使用boto进行https的连接失败,  validate_certs设置成True或False没有任何作用

is_secure为Ture时,遇到的报错如下

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1076)

is_secure为False时,遇到的报错如下

http.client.RemoteDisconnected: Remote end closed connection without response

遂更换了botot3

boto3,下面的示例是用的https的(boto对于https的连接不上,可能是因为我的证书是自制的,所以才找了这个包)

import urllib3
import boto3

urllib3.disable_warnings()

s3 = boto3.resource(
  service_name='s3',
  aws_access_key_id="123456",
  aws_secret_access_key="123456",
  endpoint_url='https://192.168.150.20:8080',
  verify=False
)

str_bucket_name = "bucket_test"
s3.create_bucket(Bucket=str_bucket_name)


for bucket in s3.buckets.all(): # 获取所有bucket
  # 将实际转为本地时间
  print({"name": bucket.name, "create_date": datetime.datetime.strftime(bucket.creation_date + datetime.timedelta(hours=8), "%Y-%m-%d %H:%M:%S")})

# 删除指定的bucket
for bucket in s3.buckets.all():
  if bucket.name == str_bucket_name:
    bucket.objects.all().delete()  # 等价于下面两行
    # for obj in bucket.objects.all():
    #   obj.delete()
    bucket.delete()

# 存储文件流或字符串中的数据
s3.Object('mybucket', 'hello.txt').put(Body=open('/tmp/hello.txt', 'rb'))

以上就是python boto和boto3操作bucket的示例的详细内容,更多关于python 操作bucket的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python分析nignx访问日志脚本分享
Feb 26 Python
Python实现批量更换指定目录下文件扩展名的方法
Sep 19 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
Jun 11 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
Numpy数组array和矩阵matrix转换方法
Aug 05 Python
tensorflow 只恢复部分模型参数的实例
Jan 06 Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 Python
重写django的model下的objects模型管理器方式
May 15 Python
python导入库的具体方法
Jun 18 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
python单向链表实例详解
May 25 Python
python 多进程和协程配合使用写入数据
Oct 30 #Python
python打包生成so文件的实现
Oct 30 #Python
pytorch 移动端部署之helloworld的使用
Oct 30 #Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 #Python
Python模拟登录和登录跳转的参考示例
Oct 30 #Python
python中watchdog文件监控与检测上传功能
Oct 30 #Python
GitHub上值得推荐的8个python 项目
Oct 30 #Python
You might like
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
理解php原理的opcodes(操作码)
2010/10/26 PHP
那些年一起学习的PHP(一)
2012/03/21 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
2014/04/01 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
让您的菜单不离网站
2006/10/03 Javascript
js中eval详解
2012/03/30 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
jQuery实现鼠标滑过点击事件音效试听
2015/08/31 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
Python实现数据库编程方法详解
2015/06/09 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
深入了解Python在HDA中的应用
2019/09/05 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
搞笑征婚广告词
2014/03/17 职场文书
三方协议书范本
2014/04/22 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
党员承诺书范文2015
2015/04/27 职场文书
python3读取文件指定行的三种方法
2021/05/24 Python
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js
nginx lua 操作 mysql
2022/05/15 Servers