【问题标题】:Generate presigned url for versions in S3 with boto3使用 boto3 为 S3 中的版本生成预签名 url
【发布时间】:2018-01-31 05:45:55
【问题描述】:

因此,我正在努力寻找有关在 S3 中为每个文件版本生成预签名 URL 的方法的信息。我能够获取所有版本,但是在调用 generate_presigned_url() 时,我没有从版本对象传递的密钥。有没有办法做到这一点?我希望不需要下载每个版本,但如果这是唯一的方法,那很好。

这是我目前的 sn-p:

for version in versions:
    object = version.get()
    url = s3Client.generate_presigned_url(
        ClientMethod='get_object',
        Params={
            'Bucket': bucket,
            'Key': object.get('VersionID') #Not sure what value to put here?
        }
    )

【问题讨论】:

    标签: amazon-web-services amazon-s3 boto3


    【解决方案1】:

    对此进行了更多挖掘。看起来可以使用“VersionId”参数获取到旧版本文件的预签名 URL。没有提到该参数支持 generate_presigned_url 调用,但我还是尝试了它并且它有效。

    for version in versions:
        object = version.get()
        url = s3Client.generate_presigned_url(
            ClientMethod='get_object',
            Params={
                'Bucket': bucket,
                'Key': key,
                'VersionId': object.get('VersionId')
            }
        )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 2021-02-03
      • 2019-12-14
      • 1970-01-01
      • 2021-12-28
      相关资源
      最近更新 更多