繁体   English   中英

单击按钮时,如何让用户从s3存储桶下载文件?

[英]How can I let a user download a file from an s3 bucket when clicking on a button?

如果这个问题很简单,我很抱歉,我希望能找到很多有关它的信息,但不幸的是我已经寻找了一段时间,却找不到任何东西。 单击按钮时,如何让用户下载存储在Amazon s3存储桶中的文件? 我曾想借助boto3 python SDK使用lambda函数实现此功能,但我不确定是否可行。 预先感谢您可以提供的任何帮助

是的,应该有可能。 您可以通过以下方式生成预签名链接。

            url = s3.generate_presigned_url(
                ClientMethod='get_object',
                Params={
                    'Bucket': get_bucket_name(),
                    'Key': s3_key
                }
            )

您提到的情况是可能的。 我们可以使用两种方法处理相同的问题。

  • 我们可以将s3存储桶设置为公共可读的存储桶,这样可以有效地将对象提供给所有用户使用,如果考虑到安全场景,我认为这不是一个好方法。
  • 我们可以使用一个预签名的URL,可以为其设置一个到期时间,以便该链接在特定时间后失效。

{

bucket = 'bucket_name' # name of the s3 bucket

file_key = 'file_path/file_name' # key including any folder paths

uri_duration = 10 #expiry duration in seconds. default 3600

s3Client = boto3.client('s3')

_uri = s3Client.generate_presigned_url('get_object', Params = 
{'Bucket': bucket, 'Key': file_key}, ExpiresIn = uri_duration)

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM