amazon-s3 - 无法使用 boto3 从 s3 删除文件

标签 amazon-s3 boto3

我正在尝试使用 boto3 从 S3 永久删除文件。我的存储桶没有使用版本控制。

我试过两种方法:

def remove_aws_object(bucket_name, item_key):
    ''' Provide bucket name and item key, remove from S3
    '''
    s3_client = boto3.client('s3',
                             aws_access_key_id=AWS_ACCESS_KEY,
                             aws_secret_access_key=AWS_SECRET)
    delete = s3_client.delete_object(Bucket=bucket_name, Key=item_key)
    print(delete)
{'ResponseMetadata': {'RequestId': '61F3C195D373B0C5', 'HostId': 'pigcx1wtIN+Y8RU3zJKliWXcXrHXHzpdAOuGBL64x3V9YefQbWXPZi9B/9F', 'HTTPStatusCode': 204, 'HTTPHeaders': {'x-amz-id-2': 'pigcx1wtIN+Y8RU3zJKliWXcXrHXHzpdAOuGBL64x3V9YefQbWXPZi9B/9FLazUSsCds8f4=', 'x-amz-request-id': '61F3C195D373B0C5', 'date': 'Thu, 13 Feb 2020 09:07:50 GMT', 'server': 'AmazonS3'}, 'RetryAttempts': 0}}

以及通过对象:

def remove_aws_object(bucket_name, item_key):
    ''' Provide bucket name and item key, remove from S3
    '''
    s3_client = boto3.resource('s3',
                             aws_access_key_id=AWS_ACCESS_KEY,
                             aws_secret_access_key=AWS_SECRET)

    my_object = s3_client.Object(bucket_name, item_key)
    a = my_object.delete()
    print(a)
    {'ResponseMetadata': {'RequestId': '6074B9CA870773CE', 'HostId': 'rQoK+x+xcjAw2T3DpTHMWQb4Gq6DzPJy2qFoFHQCYoGwb8/p7700+Nk+6gBIERN', 'HTTPStatusCode': 204, 'HTTPHeaders': {'x-amz-id-2': 'rQoK+x+xcjAw2TKK833DpTHMWQb4Gq6DzPJy2qFoFHQCYoGwb8/p7700+Nk+6gBIE', 'x-amz-request-id': '6074B9CA870773CE', 'date': 'Thu, 13 Feb 2020 12:02:36 GMT', 'x-amz-version-id': 'null', 'x-amz-delete-marker': 'true', 'server': 'AmazonS3'}, 'RetryAttempts': 0}, 'DeleteMarker': True, 'VersionId': 'null'}

这两种方法都没有错误,但不要删除文件,我仍然可以在 S3 控制台中看到它,然后我必须手动删除它。我做错了什么吗?

最佳答案

为了重现您的情况,我执行了以下操作:

  • 在 Amazon S3 管理控制台中创建了一个新的存储桶
  • 通过管理控制台将文件上传到存储桶
  • 使用您的代码(第一个示例)删除对象

对象已成功删除。

所以,代码没问题。

关于amazon-s3 - 无法使用 boto3 从 s3 删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60207640/

相关文章:

python - AWS Python SDK - 发送 CLI 命令

amazon-web-services - 如何更改 aws-ec2 实例类型?

amazon-web-services - 通过 Spark DataFrame 读取 S3 文件时,Glue 书签不起作用

php - 使用 php ffmpeg 库转码视频

amazon-s3 - 亚马逊 SageMaker : ClientError: Data download failed:NoSuchKey (404): The specified key does not exist

amazon-web-services - "errorMessage": "Parameter validation failed in Lambda calling SageMaker endpoint

javascript 将对象数组转换为字符串以存储在 s3 中

java - 从 Amazon S3 实时获取图片

python - 用 python 在 aws dynamodb 上写一个字典作为 avS

django - 如何使用 django-storages 和 boto3 获取 aws s3 对象键