Amazon s3 버킷에서 필요한 파일을 삭제하는 코드를 Python으로 작성해야합니다. Amazon s3 버킷에 연결하고 파일을 저장할 수 있지만 파일을 삭제하려면 어떻게해야합니까?
답변
사용 boto3
(현재 버전 1.4.4)를 사용 S3.Object.delete()
.
import boto3
s3 = boto3.resource('s3')
s3.Object('your-bucket', 'your-key').delete()
답변
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')
답변
2020 년에 오신 것을 환영합니다. 여기에 Python / Django의 답변이 있습니다.
from django.conf import settings
import boto3
s3 = boto3.client('s3')
s3.delete_object(Bucket=settings.AWS_STORAGE_BUCKET_NAME, Key=f"media/{item.file.name}")
답을 찾기에는 너무 오래 걸렸고 이렇게 간단했습니다.
답변
이 쉬운 방법이 없다는 것에 놀랐습니다 : 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()
답변
Boto3는 수시로 변경 될 수 있으므로 업데이트 된 메서드 를 찾아보십시오 . my_bucket.delete_objects () 사용 했습니다 .
import boto3
from boto3.session import Session
session = Session(aws_access_key_id='your_key_id',
aws_secret_access_key='your_secret_key')
# s3_client = session.client('s3')
s3_resource = session.resource('s3')
my_bucket = s3_resource.Bucket("your_bucket_name")
response = my_bucket.delete_objects(
Delete={
'Objects': [
{
'Key': "your_file_name_key" # the_name of_your_file
}
]
}
)
답변
어떤 인터페이스를 통해? REST 인터페이스를 사용하면 다음과 같이 delete를 보냅니다 .
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 등이 , 그것은처럼 “삭제”기능을 노출한다 delete_key()
.