gpt4 book ai didi

python - 使用 boto3 从 s3 下载时使用文件名作为文件名

转载 作者:行者123 更新时间:2023-12-04 01:08:21 24 4
gpt4 key购买 nike

我正在使用 boto3 上传文件,如下所示:

  client = boto3.client('s3', 
aws_access_key_id = id,
aws_secret_access_key = key

client.upload_file('tmp/test.pdf', 'bucketname', 'test.pdf')


然后我使用 generate_presigned_url 生成一个下载链接
   url = client.generate_presigned_url(
ClientMethod = 'get_object',
Params = {
'Bucket': 'bucketname',
'key': <randomhash>
}

)

当我下载链接上的文件时,它以随机唯一哈希的 key 命名 - 没有扩展名 - 我想给它一个带有扩展名的特定文件名。我该怎么做?

编辑:我知道我可以使用文件名作为键,但我对这种方法的问题是,如果用户上传相似的文件名,则 url 将仅链接到不正确/最近的文件。这就是为什么我更喜欢使用唯一的哈希。

使用唯一散列的唯一缺点是我的下载文件名变成了一些长散列,而不是我在上传时给它的文件名。

最佳答案

将此键值添加到您的 Params :

'ResponseContentDisposition': f"attachment; filename = {filename}"

这应该设置下载响应的 Content-Disposition header ,以便设置文件名。

关于python - 使用 boto3 从 s3 下载时使用文件名作为文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56219164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com