2017-03-29 107 views
0

我已生成使用boto3在我的容器中的一個對象的預籤網址:如何使用boto3中預先簽名的url從S3獲取對象?

s3.generate_presigned_url('get_object', Params = {'Bucket': 'https://s3.amazonaws.com/<>', 'Key': '<>.json'}, ExpiresIn = 100) 

現在,我怎麼get_object它boto3? The boto3's get_object reference沒有爲預先簽名的url指定任何參數。

那麼,如何從S3中使用它在boto3中的預簽名url中獲取該對象?

+0

使用'requests'向url發送'GET'請求。 – franklinsijo

+0

預簽名url是指讓用戶直接使用https協議下載它,而不是將api與身份驗證令牌密鑰一起使用。 – mootmoot

+0

爲什麼要使用預先簽名的URL通過boto檢索對象?您通常會向boto提供憑據,以便它可以通過API調用訪問內容,而不是預先簽署的URL。 –

回答

0

如果您有預先簽名的URL,則不需要boto - 您可以使用任何HTTP用戶代理庫下載對象。

相反,如果您擁有boto和憑據,則不需要預先簽名的URL。

預簽名URL旨在允許具有憑據的人員在沒有憑據訪問資源的情況下允許其他人訪問資源,而不會將憑據公開給他們。

預先簽名的URL包含access-key-id和可能的會話令牌,但不包括訪問密鑰 - 祕密,並且在計算上不可行以反向工程......並且在這個意義上,它們請勿以允許擁有預簽名URL的實體將關聯憑據用於任何其他目的的方式公開證書。

相關問題