簡體   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