當您需要將本地檔案、圖片、視頻等資源上傳到OSS,或者需要上傳大檔案至OSS時,可以使用ossutil的cp命令。
注意事項
要上傳檔案,您必須具有
oss:PutObject、oss:ListParts和oss:AbortMultipartUpload許可權。具體操作,請參見為RAM使用者授予自訂的權限原則。只有源為目錄時,才能支援批量上傳。
命令格式
ossutil cp source dest [flags]參數 | 類型 | 說明 |
source | string | 本地檔案路徑。支援相對路徑、絕對路徑和 |
dest | string | 目標Bucket下的檔案路徑。例如: |
--acl | string | 對象的存取權限。取值:
|
--bandwidth-limit | SizeSuffix | 用於限制網路頻寬,控制資料轉送的速率。最小值為1024 B/s。單位預設為B/s。 配置此參數時,可以根據需要為頻寬值指定單位,可選單位包括B(位元組)、K(KB)、M(MB)和G(吉位元組)。例如 50 M表示頻寬節流設定為50 MB/s。 |
--bigfile-threshold | SizeSuffix | 開啟大檔案分區上傳、下載或拷貝的閾值(預設值104857600)。 |
--cache-control | string | 指定該對象被下載時網頁的緩衝行為。 |
--content-disposition | string | 指定對象的展示形式。 |
--content-encoding | string | 聲明對象的編碼方式。 |
--content-type | string | 對象的內容類型。 |
--copy-props | string | 確定從來源物件上傳哪些屬性,取值:
|
--checkpoint-dir | string |
|
-d, --dirs | string | 返回目前的目錄下的檔案和子目錄,而非遞迴顯示所有子目錄下的所有檔案。 |
--encoding-type | string | 輸入的對象名或檔案名稱的編碼方式。取值:url。 |
--end-with | string | 按字母排序,返回設定值之前的對象,包含設定值。 |
--exclude | stringArray | 路徑或檔案名稱的排除規則。 |
--exclude-from | stringArray | 從規則檔案裡讀取排除規則。 |
--expires | stringArray | 指定緩衝內容的絕對到期時間。 |
--files-from | stringArray | 從檔案中讀取源檔案名稱列表,忽略空行或注釋行。 |
--files-from-raw | stringArray | 從檔案中讀取源檔案名稱列表。 |
--filter | stringArray | 路徑或檔案名稱過濾規則。 |
--filter-from | stringArray | 從規則檔案讀取過濾規則。 |
-f, --force | / | 強制操作,不進行詢問提示。 |
--include | stringArray | 路徑或檔案名稱的包含規則。 說明 關於過濾選項的更多資訊,請參見過濾選項。 |
--include-from | stringArray | 從規則檔案裡讀取包含規則。 |
-j, --job | int | 並發任務數,預設值為 3。 說明 僅在同時指定 |
--listObjects | / | 使用ListObjects介面列舉對象。 |
--max-size | SizeSuffix | 限制傳輸的最大檔案大小,預設是位元組,或單位尾碼形式B|K|M|G|T|P,1K(KiB)=1024B。 |
--metadata | strings | 指定對象的使用者中繼資料,使用key=value格式。 |
--metadata-directive | string | 指定如何設定目標對象的中繼資料。取值:
|
--metadata-exclude | stringArray | 對象中繼資料的排除規則。 |
--metadata-filter | stringArray | 對象中繼資料過濾規則。 |
--metadata-filter-from | stringArray | 從規則檔案讀取對象中繼資料過濾規則。 |
--metadata-include | stringArray | 對象中繼資料的包含規則。 |
--min-age | Duration | 僅上傳修改時間在指定時間間隔前的檔案,預設單位是秒,可以使用單位尾碼形式。例如 1h,表示1小時。 說明
|
--max-age | Duration | 僅上傳修改時間在指定時間間隔內的檔案,預設單位是秒,可以使用單位尾碼形式。例如 1h,表示1小時。 說明
|
--min-mtime | Time | 僅上傳修改時間在指定時間之後的檔案,時間格式:UTC時間。例如2006-01-02T15:04:05。 說明
|
--max-mtime | Time | 僅上傳修改時間在指定時間之前的檔案,時間格式:UTC時間,例如 2006-01-02T15:04:05。 |
--min-size | SizeSuffix | 限制傳輸的最小檔案大小,預設是位元組,或單位尾碼形式B|K|M|G|T|P,1K(KiB)=1024B。 |
--no-progress | / | 不顯示進度條。 |
--page-size | int | 批量上傳時分頁列舉的對象的最大值(預設值1000),取值範圍1~1000。 |
--parallel | int | 單檔案內部操作的並發任務數。 |
--part-size | SizeSuffix | 分區大小,預設情況下根據檔案大小自行計算合適的分區大小值。取值範圍100KiB~5GiB。 |
-r, --recursive | / | 遞迴進行操作。當指定該選項時,命令會對儲存空間下所有合格對象進行操作,否則只對路徑指定的對象進行操作。 |
--request-payer | string | 請求的支付方式,如果為要求者付費模式,請設定該值。取值:requester。 |
--size-only | / | 僅上傳檔案大小不一致的源檔案。 |
--storage-class | string | 對象的儲存類型, 取值:
|
--tagging | strings | 指定對象的標籤,使用key=value格式。 |
--tagging-directive | string | 指定如何設定目標對象的標籤。取值:
|
-u, --update | / | 僅上傳源檔案新於目標檔案。 |
--ignore-existing | / | 跳過已存在的目標檔案。 |
關於支援的全域命令列選項,請參見支援的全域命令列選項。
目標檔案命名規則如下:
單檔案上傳時,如果prefix為空白,則對象的名字為檔案名稱。
單檔案上傳時,如果prefix以"/"結尾,則對象的名字為prefix + 檔案名稱。
批量上傳時,如果prefix為空白,則對象的名字為源檔案相對路徑。
批量上傳時,如果prefix以"/"結尾, 則對象的名字為prefix + 源檔案相對路徑。
批量上傳時,如果prefix不以"/"結尾, 則對象的名字為prefix + "/" + 源檔案相對路徑。
源檔案相對路徑規則為:從根目錄之後的名字,如cp /root/dir/ ... 時,檔案/root/dir/subdir/test.txt的相對路徑為subdir/test.txt。
使用樣本
上傳單個檔案
上傳單個檔案
將本地檔案examplefile.txt上傳至examplebucket中的desfolder檔案夾下。
ossutil cp D:/localpath/examplefile.txt oss://examplebucket/desfolder/
上傳多個檔案
僅上傳檔案夾內的檔案
將本地檔案夾localfolder中的檔案上傳至examplebucket中的desfolder檔案夾下。
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/批量上傳合格檔案
上傳所有檔案格式為TXT的檔案
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ --include "*.txt"使用10個並發任務同時批量上傳檔案
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ -f -j 10
上傳時限速
上傳本地檔案upload.rar至examplebucket中的desfolder檔案夾下,上傳速度為20 MB/s,預設單位為位元組每秒(B/s)。
ossutil cp D:/upload.rar oss://examplebucket/desfolder/ --bandwidth-limit 20971520上傳本地檔案file.rar至examplebucket中的desfolder檔案夾下,限制上傳速度為50 MB/s,指定單位為MB每秒(MB/s)
ossutil cp D:/file.rar oss://examplebucket/desfolder/ -r --bandwidth-limit 50M