【问题标题】:How to upload a file to AWS S3 subfolder using python 3.8?如何使用 python 3.8 将文件上传到 AWS S3 子文件夹?
【发布时间】:2020-11-23 14:41:32
【问题描述】:

我想将文件上传到 AWS S3 存储桶中的子文件夹。 我正在使用下面给出的代码。

filename  = '/tmp/' + 'image' + '.png'
file_obj = open(filename, 'rb')
s3_upload = s3.put_object( Bucket="aaa/Bbb/cc-cc", Key="filename.png", Body=file_obj)
   
return
    {
    'statusCode': 200,
    'body': json.dumps("Executed Successfully"
    }

上述将文件上传到 AWS S3 Bucket 子文件夹的概念在 Node.js 中可以正常工作,但在 python 中实施时会出现以下错误。

Parameter validation failed:\nInvalid bucket name \"aaa/Bbb/cc-cc\": Bucket name must match the regex \"^[a-zA-Z0-9.\\-_]{1,255}$\" or be an ARN matching the regex \"^arn:(aws).*:s3:[a-z\\-0-9]+:[0-9]{12}:accesspoint[/:][a-zA-Z0-9\\-]{1,63}$|^arn:(aws).*:s3-outposts:[a-z\\-0-9]+:[0-9]{12}:outpost[/:][a-zA-Z0-9\\-]{1,63}[/:]accesspoint[/:][a-zA-Z0-9\\-]{1,63}$\"

【问题讨论】:

    标签: python-3.x amazon-web-services amazon-s3


    【解决方案1】:

    在您的情况下,存储桶名称只是 aaa,而 /Bbb/cc-cc 应该是键名的一部分:

    s3_upload = s3.put_object( Bucket="aaa", Key="/Bbb/cc-cc/filename.png", Body=file_obj)
    

    【讨论】:

    猜你喜欢
    • 2018-04-28
    • 1970-01-01
    • 2022-11-03
    • 2018-07-07
    • 1970-01-01
    • 2021-05-14
    • 2021-03-18
    • 2014-10-24
    • 1970-01-01
    相关资源
    最近更新 更多