一、什麼是getpresignedobjecturl?
getpresignedobjecturl是Amazon S3 API中的一個功能,可以用來創建一個簽名過期的URL,使用戶可以在限定的時間內訪問Amazon S3中的對象,而無需提供Amazon S3的安全憑證。
二、使用場景
getpresignedobjecturl常用於生成Amazon S3的預簽名URL,以便在應用程序上提供對象訪問權限。例如,可以在應用程序中啟動一個簡單的文件下載裝置,使用戶可以輕鬆地下載Amazon S3中的文件。
此外,也可以使用getpresignedobjecturl來生成一個面向公共的臨時URL,使得任何訪問該URL的人都可以在一定時間內獲取Amazon S3中的對象。這在訪問公共資源中非常有用。
三、使用方法
要使用getpresignedobjecturl,首先需要有Access Key ID和Secret Access Key。可以通過AWS主控版面的Access Keys選項來獲取這些信息。然後,可以使用以下代碼生成預簽名URL:
import boto3 from botocore.client import Config ACCESS_KEY_ID = 'access_key_id' SECRET_ACCESS_KEY = 'secret_access_key' BUCKET_NAME = 'bucket_name' OBJECT_NAME = 'object_name' s3_client = boto3.client('s3', aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=SECRET_ACCESS_KEY, config=Config(signature_version='s3v4')) url = s3_client.generate_presigned_url('get_object', Params={'Bucket': BUCKET_NAME, 'Key': OBJECT_NAME}, ExpiresIn=3600) print(url)
在這個代碼中,使用boto3的S3客戶端創建了一個簽名過期時間為3600秒的臨時URL。如果要創建一個上傳到S3的URL,則必須將請求類型更改為’put_object’。
四、預簽名URL失效
預簽名URL有一個過期時間,一旦過期,URL就不再有效。默認情況下,預簽名URL的有效期為一小時(3600秒)。用戶也可以通過ExpiresIn參數設置URL的有效期。
如果過期時間已經到了,在訪問對象時,Amazon S3會返回「Access Denied」錯誤消息。
五、小結
在本文中,我們深入分析了getpresignedobjecturl,包括它的定義、使用場景、使用方法和其限制。預簽名URL是Amazon S3 API的重要功能,它可以允許用戶在無需提供Amazon S3憑據的情況下訪問Amazon S3中的對象,同時也可以控制URL的失效時間。
原創文章,作者:KHFJK,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/333462.html