全部產品
Search
文件中心

Object Storage Service:有關Multipart命令

更新時間:Feb 28, 2024

本文主要介紹與片段(part)相關的命令。

重要

osscmd於2019年7月31日下線,阿里雲不再繼續維護更新。osscmd操作命令已整合到ossutil中,推薦您使用ossutil

init

命令說明:

init oss://bucket/object

初始化產生一個Upload ID。這個Upload ID可以配合後面的multiupload命令來使用。

使用樣本:

python osscmd init oss://mybucket/myobject

listpart

命令說明:

listpart oss://bucket/object --upload_id=xxx

顯示指定object的Upload ID下已經上傳的Parts。相關概念見OSS API文檔。必須要指定Upload ID。

使用樣本:

python osscmd listpart oss://mybucket/myobject --upload_id=
          75835E389EA648C0B93571B6A46023F3

listparts

命令說明:

listparts oss://bucket

顯示bucket中未完成的multipart Upload ID和object。一般在刪除bucket提示bucket非空的情況下,可以用這個命令查看是否有multipart相關的內容。

使用樣本:

python osscmd listparts oss://mybucket

getallpartsize

命令說明:

getallpartsize oss://bucket

顯示bucket中還存在的Upload ID下已經上傳的Parts的總大小。

使用樣本:

python osscmd getallpartsize oss://mybucket

cancel

命令說明:

cancel oss://bucket/object --upload_id=xxx

終止Upload ID對應的Multipart Upload事件。

使用樣本:

python osscmd cancel oss://mybucket/myobject --upload_id=
          D9D278DB6F8845E9AFE797DD235DC576

multiupload(multi_upload,mp)

命令說明:

multiupload(multi_upload,mp) localfile oss://bucket/object --check_md5=false
        --thread_num=10

將本地檔案以multipart的方式上傳到OSS。

使用樣本:

  • python osscmd multiupload /tmp/localfile.txt oss://mybucket/object

  • python osscmd multiup_load /tmp/localfile.txt oss://mybucket/object

  • python osscmd mp /tmp/localfile.txt oss://mybucket/object

命令說明:

multiupload(multi_upload,mp) localfile oss://bucket/object --upload_id=xxx --thread_num=10
        --max_part_num=1000 --check_md5=false

將本地檔案以multipart的方式上傳到OSS。本地檔案劃分的塊數由max_part_num來指定。這個命令在實現的時候,會先去判斷Upload ID對應的Parts的ETag是否和本地檔案的MD5值是否相等,相等則跳過上傳。所以在使用之前產生一個Upload ID,作為參數傳進來。即使上傳沒有成功,重複執行相同的multiupload命令可以達到一個斷點續傳的效果。--check_md5=false表示上傳檔案時,不會做攜帶Content-MD5要求標頭校正。true則會做校正。

使用樣本:

  • python osscmd multiupload /tmp/localfile.txt oss://mybucket/object --upload_id=
              D9D278DB6F8845E9AFE797DD235DC576
  • python osscmd multiup_load /tmp/localfile.txt oss://mybucket/object
            --thread_num=5
  • python osscmd mp /tmp/localfile.txt oss://mybucket/object --max_part_num=100

copylargefile

命令說明:

copylargefile oss://source_bucket/source_object oss://target_bucket/target_object
        --part_size=10*1024*1024 --upload_id=xxx

對於超過1G的大檔案進行複製時,採用multipart的方式將object複製到指定位置(源bucket必須與目標bucket處於同一region)。其中upload_id為選擇性參數,當需要對某一次multipart copy事件進行續傳的時候,可以傳入該事件的upload_id。part_size用來設定分塊大小,分塊最小需要大於100KB,最多支援10000塊分塊。如果part_size設定值導致與OSS限制衝突,程式會幫你自動調節分塊大小。

使用樣本:

python osscmd copylargefile oss://source_bucket/source_object
          oss://target_bucket/target_object --part_size=10*1024*1024

uploadpartfromfile (upff)

命令說明:

uploadpartfromfile (upff) localfile oss://bucket/object --upload_id=xxx
        --part_number=xxx

主要用於測試,不推薦使用。

uploadpartfromstring(upfs)

命令說明:

uploadpartfromstring(upfs) oss://bucket/object --upload_id=xxx --part_number=xxx
        --data=xxx

主要用於測試,不推薦使用。