ossutil提供了上傳/下載/拷貝檔案、設定object的acl、設定object的meta、查看object的meta資訊等功能。

使用這些命令前請使用config命令配置訪問AK。

  • 上傳/下載/拷貝檔案

    強烈建議在使用cp命令前使用ossutil help cp先查看幫助。

    可以使用cp命令進行上傳/下載/拷貝檔案,使用-r選項來拷貝檔案夾,對大檔案預設使用分區上傳並可進行斷點續傳(開啟分區上傳的大檔案閾值可用--bigfile-threshold選項來設定)。

    使用-f選項來預設強制上傳,當目標端存在同名檔案時,不詢問,直接覆蓋。

    當批量上傳/下載/拷貝檔案時,如果某個檔案出錯,ossutil預設會將錯誤資訊記錄在report檔案,並跳過該檔案,繼續其他檔案的操作(當錯誤為Bucket不存在、accessKeyID/accessKeySecret錯誤造成的許可權驗證非法等錯誤時,不再繼續其他檔案拷貝)。更多資訊請見ossutil help cp。

    ossutil支援特定場景下的增量上傳策略:--update--snapshot-path選項,請參見ossutil help cp。

    ossutil從1.0.0.Beta1版本開始,上傳檔案預設開啟crc64。

    • 上傳單個檔案:
      $./ossutil cp a oss://ossutil-test
      Succeed: Total num: 1, size: 230. OK num: 1(upload 1 files).
      0.699795(s) elapsed
    • 上傳檔案夾:
      $./ossutil cp -r dir oss://ossutil-test
      Succeed: Total num: 35, size: 464,606. OK num: 35(upload 34 files, 1 directories).
      0.896320(s) elapsed
  • 上傳/下載/拷貝檔案的性能調優

    在cp命令中,通過jobs項和-parallel項控制並發數。-jobs項控制多個檔案上傳/下載/拷貝時,檔案間啟動的並發數。-parallel制分區上傳/下載/拷貝一個大檔案時,每一個大檔案啟動的並發數。

    預設情況下,ossutil會根據檔案大小來計算parallel個數(該選項對於小檔案不起作用,進行分區上傳/下載/拷貝的大檔案檔案閾值可由—bigfile-threshold選項來控制),當進行批量大檔案的上傳/下載/拷貝時,實際的並發數為jobs個數乘以parallel個數。該兩個選項可由用戶調整,當ossutil自行設定的預設並發達不到用戶的性能需求時,用戶可以自行調 整該兩個選項來升降性能。

    说明
    • 如果並發數調得太大,由於線程間資源切換及搶奪等,ossutil上傳/下載/拷貝性能可能會下降,所以請根據實際的機器情況調整這兩個選項的數值,如果要進行壓測,可以一開始將兩個數值調低,慢慢調大尋找最優值。
    • 如果--jobs選項和--parallel選項值太大,在機器資源有限的情況下,可能會因為網路傳輸太慢,產生EOF錯誤,這個時候請適當降低--jobs選項和--parallel選項值。
  • 設定object的acl

    ossutil使用set-acl命令設定object的acl,使用-r選項可以批量設定object的acl。

    更多資訊見:ossutil help set-acl

    $./ossutil set-acl oss://dest/a private
    0.074507(s) elapsed

    批量設定acl:

    $./ossutil set-acl oss://dest/a private -r
    Do you really mean to recursivlly set acl on objects of oss://dest/a(y or N)? y
    Succeed: Total 3 objects. Setted acl on 3 objects.
    0.963934(s) elapsed
  • 設定object的meta

    ossutil使用set-meta命令設定object的meta資訊,使用-r選項可以批量設定object的meta。

    更多資訊見:ossutil help set-meta

    ./ossutil set-meta oss://dest/a x-oss-object-acl:private -u
    说明
    您可以在上傳檔案的同時設定object的meta資訊,詳情請參見ossutil的過濾參數include/exclude
  • 查看object描述資訊(meta)

    ossutil使用stat命令查看object的描述(meta)資訊。

    更多資訊見:ossutil help stat

    $./ossutil stat oss://dest/a 
    ACL                         : default
    Accept-Ranges               : bytes
    Content-Length              : 230
    Content-Md5                 : +5vbQC/MSQK0xXSiyKBZog==
    Content-Type                : application/octet-stream
    Etag                        : FB9BDB402FCC4902B4C574A2C8A059A2
    Last-Modified               : 2017-01-13 15:14:22 +0800 CST
    Owner                       : aliyun
    X-Oss-Hash-Crc64ecma        : 12488808046134286088
    X-Oss-Object-Type           : Normal
    0.125417(s) elapsed
  • 恢複冷凍狀態的object為可讀狀態

    ossutil使用restore命令恢複冷凍狀態的object為可讀狀態。可以使用-r選項批量恢複冷凍狀態的objects為可讀狀態。

    更多資訊見:ossutil help restore

    $./ossutil restore oss://utiltest/a
    0.037729(s) elapsed
  • 建立符號連結

    ossutil使用create-symlink建立符號連結。

    更多資訊見:ossutil help create-symlink

    $./ossutil create-symlink oss://utiltest/b a
    0.037729(s) elapsed
  • 讀取符號連結檔案的描述資訊

    ossutil使用read-symlink讀取符號連結檔案的描述資訊。

    更多資訊見:ossutil help read-symlink

    $./ossutil read-symlink oss://utiltest/b
    Etag                    : D7257B62AA6A26D66686391037B7D61A
    Last-Modified           : 2017-04-26 15:34:27 +0800 CST
    X-Oss-Symlink-Target    : a
    0.112494(s) elapsed