python boto和boto3操作bucket的示例

作者:用户1214487 时间:2022-08-05 03:22:49 

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'))

来源:https://cloud.tencent.com/developer/article/1699998

标签:python,boto,boto3,bucket
0
投稿

猜你喜欢

  • 解决python调用matlab时的一些常见问题

    2022-10-13 16:11:01
  • python 获取list 长度

    2021-11-12 12:49:57
  • 关于python如何生成exe文件

    2021-06-05 00:52:33
  • PHP APC缓存配置、使用详解

    2023-11-21 22:15:15
  • mysql之查找所有数据库中没有主键的表问题

    2024-01-12 15:27:19
  • MySql中的longtext字段的返回问题及解决

    2024-01-12 23:32:41
  • 如何把ACCESS转成SQL数据库

    2007-08-11 13:51:00
  • 如何基于线程池提升request模块效率

    2023-06-12 11:13:44
  • 详解VScode自动补全CSS3前缀插件以及配置无效的解决办法

    2023-01-05 06:49:40
  • Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中

    2023-07-19 04:13:23
  • php桥接模式的实例用法及代码分析

    2023-11-18 15:46:33
  • Python画图学习入门教程

    2023-11-29 07:43:03
  • asp 删除数据并同时删除图片的代码

    2011-02-28 10:39:00
  • Mysql的增删改查语句简单实现

    2024-01-19 03:03:57
  • 设计中基于人类学的田野调查与比较研究法 ——浅谈用研与竞品分析方法之理论基础

    2009-08-31 16:45:00
  • Pygame游戏开发之太空射击实战敌人精灵篇

    2023-09-15 20:03:52
  • PyQt QListWidget修改列表项item的行高方法

    2022-02-08 08:33:35
  • 关于ORA-04091异常的出现原因分析及解决方案

    2024-01-22 22:29:20
  • python管理包路径之pycharm自动解决包路径注册

    2023-07-14 14:25:38
  • Python标准库之日期、时间和日历模块

    2021-04-11 17:05:14
  • asp之家 网络编程 m.aspxhome.com