如何从亚马逊S3桶中删除文件?

我需要在python中编写代码,将从amazon s3桶中删除所需的文件,我能够连接到amazon s3桶,也能够保存文件,我只想知道如何删除文件? 如果有人知道,请帮助。

发现了另一种方法来使用boto:

from boto.s3.connection import S3Connection, Bucket, Key conn = S3Connection(AWS_ACCESS_KEY, AWS_SECERET_KEY) b = Bucket(conn, S3_BUCKET_NAME) k = Key(b) k.key = 'images/my-images/'+filename b.delete_key(k) 

使用Python boto3 SDK (并假定为AWS设置了凭据),以下操作将删除存储桶中的指定对象:

 import boto3 client = boto3.client('s3') client.delete_object(Bucket='mybucketname', Key='myfile.whatever') 

使用boto3 (当前版本1.4.4)使用S3.Object.delete()

 import boto3 s3 = boto3.resource('s3') s3.Object('your-bucket', 'your-key').delete() 

我很惊讶没有这个简单的方法: key.delete()

 from boto.s3.connection import S3Connection, Bucket, Key conn = S3Connection(AWS_ACCESS_KEY, AWS_SECERET_KEY) bucket = Bucket(conn, S3_BUCKET_NAME) k = Key(bucket = bucket, name=path_to_file) k.delete() 

通过哪个接口? 使用REST接口,您只需发送一个删除 :

 DELETE /ObjectName HTTP/1.1 Host: BucketName.s3.amazonaws.com Date: date Content-Length: length Authorization: signatureValue 

通过SOAP接口 :

 <DeleteObject xmlns="http://doc.s3.amazonaws.com/2006-03-01"> <Bucket>quotes</Bucket> <Key>Nelson</Key> <AWSAccessKeyId> 1D9FVRAYCP1VJEXAMPLE=</AWSAccessKeyId> <Timestamp>2006-03-01T12:00:00.183Z</Timestamp> <Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature> </DeleteObject> 

如果你使用像boto这样的Python库,它应该公开一个“delete”特性,比如delete_key()

现在我已经通过使用Linux实用程序s3cmd解决了这个问题。 我在Python中使用它:

 delFile = 's3cmd -c /home/project/.s3cfg del s3:/http://img.dovov.comanon-images/small/' + filename os.system(delFile)