|
目录一、前言二、boto3三、代码1、连接2、列出桶中文件3、删除文件4、上传下载一、前言 在日常进行数据高可用时,会将数据存入对象存储中。在一般的企业中,对象存储资源池只有管理员拥有Web界面管理,普通账号需要对数据进行管理时,有如下方法: 一、通用对象存储管理客户端,如对于S3对象存储有S3browser可以进行使用,其优点是操作简单,界面可视化;缺点是每次需要手动操作。 二、利用对象存储指定的API或者SDK工具进行开发,其优点是适合无法使用可视化界面的IT环境和可自动完成,缺点是需要自己编辑。二、boto3 boto3是针对S3云存储的PythonSDK工具,是boto2的迭代版本,对于可使用S3对象存储接口协议的基本可使用boto3。安装:pipinstallboto3三、代码1、连接importboto3fromdatetimeimportdatetime,timedelta#定义endpoint、accesskey和secretkeyendpoint_url='http://*************'access_key='****'secret_key='****'#创建S3客户端实例并指定endpoint和凭证信息s3=boto3.client('s3',endpoint_url=endpoint_url,aws_access_key_id=access_key,aws_secret_access_key=secret_key,verify=False)#如果不需要SSL验证,可以设置verify=False,即http或者https#列出所有的桶responses=s3.list_buckets()buckets=[bucket['Name']forbucketinresponses['Buckets']]print('AllofBuckets:',buckets)2、列出桶中文件#前面连接桶的代码段此处已省略response=s3.list_objects_v2(Bucket='****')#选择你需要列出的桶名,#输出列出的所有对象if'Contents'inresponse:forobjinresponse['Contents']:key=obj['Key']timestep=obj['LastModified']#文件对应的最后更改时间print(key,timestep)#输出桶中文件名及最后更改时间3、删除文件删除文件:s3.delete_object(Bucket='****',Key='****')Bucket即为桶名,Key为桶中要删除的文件名(包含完整路径)#以删除桶中30天以前的文件来直观了解一下#省略前面连接代码response=s3.list_objects_v2(Bucket='****')days_hup=30del_date=datetime.now()-timedelta(days=days_hup)#print(del_date)#删除30天以前的文件if'Contents'inresponse:forobjinresponse['Contents']:key=obj['Key']timestep=obj['LastModified']timestep=timestep.replace(tzinfo=None)#注意进行时间offset-aware和offset-naive的转换iftimestep
|
|