您可以通過API級命令擷取儲存空間(Bucket)中的某個檔案(Object)。
注意事項
GetObject介面預設可通過HTTP和HTTPS兩種方式訪問。如果要設定僅允許通過HTTPS方式訪問,請使用Bucket Policy的授權訪問方式。具體操作,請參見通過Bucket Policy授權使用者訪問指定資源。
如果Object類型為歸檔類型,需要先完成解凍檔案(RestoreObject)請求,且該請求不能逾時。
許可權說明
阿里雲帳號預設擁有全部許可權。阿里雲帳號下的RAM使用者或RAM角色預設沒有任何許可權,需要阿里雲帳號或帳號管理員通過RAM Policy或Bucket Policy授予操作許可權。
API | Action | 說明 |
GetObject |
| 下載Object。 |
| 下載Object時,如果通過versionId指定了Object的版本,則需要授予此操作的許可權。 | |
| 下載Object時,如果Object的中繼資料套件含X-Oss-Server-Side-Encryption: KMS,則需要此操作的許可權。 |
命令格式
ossutil api get-object --bucket value --key value [flags]參數 | 類型 | 說明 |
--accept-encoding | string | 指定用戶端的編碼類別型。 |
--bucket | string | Bucket名稱。 |
--if-match | string | 如果傳入期望的ETag和Object的ETag匹配,則返回200 OK和Object Meta;否則返回412 precondition failed。 |
--if-modified-since | string | 如果傳入參數中的時間早於實際修改時間,則返回200 OK和Object Meta;否則返回304 not modified。 |
--if-none-match | string | 如果傳入期望的ETag值和Object的ETag不匹配,則返回200 OK和Object Meta;否則返回304 Not Modified。 |
--if-unmodified-since | string | 如果傳入參數中的時間等於或者晚於檔案實際修改時間,則返回200 OK和Object Meta;否則返回412 Precondition Failed。 |
--key | string | Object的完整路徑。 |
--range | stringArray | 指定檔案傳輸的範圍。 |
--response-cache-control | string | 指定OSS返回請求的cache-control頭。 |
--response-content-disposition | string | 指定OSS返回請求的content-disposition頭。 |
--response-content-encoding | string | 指定OSS返回請求的content-encoding頭。 |
--response-content-language | string | 指定OSS返回請求的content-language頭。 |
--response-expires | string | 指定OSS返回請求的expires頭。 |
--version-id | string | 請求解凍的Object的版本號碼。 |
get-object命令對應的API介面是GetObject。關於API中的具體參數含義,請參見GetObject。
關於支援的全域命令列選項,請參見支援的全域命令列選項。
使用樣本
擷取
examplebucket儲存空間下的exampleobject檔案。ossutil api get-object --bucket examplebucket --key exampleobject擷取
examplebucket儲存空間下的版本號碼為123的exampleobject檔案。ossutil api get-object --bucket examplebucket --key exampleobject --version-id 123擷取
examplebucket儲存空間下的exampleobject指定檔案範圍內容。ossutil api get-object --bucket examplebucket --key exampleobject --range bytes=1-10擷取
examplebucket儲存空間下的exampleobject,如果exampleobject的修改時間早於Mon, 11 May 2020 08:16:23 GMT則返回object。ossutil api get-object --bucket examplebucket --key exampleobject --if-modified-since "Mon, 11 May 2020 08:16:23 GMT"擷取
examplebucket儲存空間下的exampleobject,如果exampleobject的ETag等於123則返回object。ossutil api get-object --bucket examplebucket --key exampleobject --if-match 123擷取
examplebucket儲存空間下的exampleobject,對返回內容進行Gzip壓縮傳輸。ossutil api get-object --bucket examplebucket --key exampleobject --accept-encoding gzip
相關API
以上使用方式底層基於以下API,如果您的程式自訂要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。更多資訊,請參見GetObject。