OSSを操作するCLIツールのossutilを使う

Alibaba CloudのOSSの操作をossutilというCLIツールから行います。

ossutilのインストール

GOPATHとPATHが正しく設定されていたらgo getするだけでossutilコマンドが使えるようになります。

$ go get github.com/aliyun/ossutil
$ ossutil
Usage: ossutil [command] [args...] [options...]
Please use 'ossutil help command' to show help of command

Commands:
  mb              cloud_url [options]
        Make Bucket
  ls              [cloud_url] [options]
        List Buckets or Objects
  rm              cloud_url [options]
        Remove Bucket or Objects
  stat            cloud_url [options]
        Display meta information of bucket or objects
  set-acl         cloud_url [acl] [options]
        Set acl on bucket or objects
  set-meta        cloud_url [meta] [options]
        set metadata on already uploaded objects
  cp              src_url dest_url [options]
        Upload, Download or Copy Objects
  restore         cloud_url [options]
        Restore Frozen State Object to Read Ready Status
  create-symlink  cloud_url target_url [options]
        Create symlink of object
  read-symlink    cloud_url [options]
        Display meta information of symlink object
  sign            cloud_url [options]
        Generate download link for object

Additional Commands:
  help            [command]
        Get help about commands
  config          [options]
        Create configuration file to store credentials
  hash            file_url [options]
        Get crc64 or md5 of local file
  update          [options]
        Update ossutil

ossutilの設定

まずOSSを使うための設定をします。

$ ossutil config
The command creates a configuration file and stores credentials.

Please enter the config file path(default /Users/ryouta/.ossutilconfig, carriage return will use the default path. If you specified this option to other path, you should specify --config-file option to the path when you use other commands):(空欄のままエンターでOK)
No config file entered, will use the default config file /Users/ryouta/.ossutilconfig

For the following settings, carriage return means skip the configuration. Please try "help config" to see the meaning of the settings.

Please enter language(CH/EN, default is:EN, the configuration will go into effect after the command successfully executed):(空欄のままエンターでOK)
Please enter accessKeyID:xxxxxxxxxxxxxxxxxx
Please enter accessKeySecret:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Please enter stsToken:(空欄のままエンターでOK)
Please enter endpoint:oss-cn-shanghai.aliyuncs.com

設定ファイルが~/.ossutilconfigに保存されます。

ちなみに設定ファイル無しでもキーをオプションとして渡す事でコマンドを実行できます。

$ ossutil ls -i xxxxxxxxxxx -k xxxxxxxxxxxxxxx -e oss-cn-shanghai.aliyuncs.com

バケットの作成

ossutil mbを使って新しくバケットを作ってossutil lsバケット一覧を確認します。

$ ossutil mb oss://test-cli
1.611435(s) elapsed
$ ossutil ls
CreationTime                                 Region    StorageClass    BucketName
2018-07-26 21:06:57 +0900 JST       oss-cn-shanghai        Standard    oss://asmsuechan-test
2018-07-27 15:11:33 +0900 JST       oss-cn-shanghai        Standard    oss://test-cli
Bucket Number is: 2
0.439196(s) elapsed

正常にバケットが作られています。

ファイルのアップロード

ファイルをアップロードするためにossutil cpを実行します。詳しい使い方を見たい方はossutil help cpでめちゃくちゃ長いヘルプを見られます。

$ ossutil cp dist/ oss://test-cli --recursive
Succeed: Total num: 14, size: 725,292. OK num: 14(upload 11 files, 3 directories).
7.206872(s) elapsed

フォルダをアップロードするには--recursiveオプションを追加します。

アップロードしたファイルを確認するために再びossutil lsを使います。

$ ossutil ls oss://test-cli
LastModifiedTime                   Size(B)  StorageClass   ETAG                                  ObjectName
2018-07-27 15:17:12 +0900 JST         8196      Standard   D8001F81BBCC687AAACA833EA66CB065      oss://test-cli/.DS_Store
2018-07-27 15:17:12 +0900 JST          512      Standard   10E49BF0460DAC5697C308A346C53A41      oss://test-cli/index.html
2018-07-27 15:17:12 +0900 JST            0      Standard   D41D8CD98F00B204E9800998ECF8427E      oss://test-cli/static/
2018-07-27 15:17:13 +0900 JST        10244      Standard   E0C9BD48FEBAC2421F2C34C85465600B      oss://test-cli/static/.DS_Store
2018-07-27 15:17:12 +0900 JST            0      Standard   D41D8CD98F00B204E9800998ECF8427E      oss://test-cli/static/css/
2018-07-27 15:17:13 +0900 JST          432      Standard   9932FCAFDD19A1DD5F429F27F849AC9F      oss://test-cli/static/css/app.30790115300ab27614ce176899523b62.css
2018-07-27 15:17:13 +0900 JST          828      Standard   8A61BB8901D198C272CA284E8B506C53      oss://test-cli/static/css/app.30790115300ab27614ce176899523b62.css.map
2018-07-27 15:17:13 +0900 JST            0      Standard   D41D8CD98F00B204E9800998ECF8427E      oss://test-cli/static/js/
2018-07-27 15:17:13 +0900 JST        11602      Standard   8DF2FAF803D14D17CF3F35629298F1DF      oss://test-cli/static/js/app.b22ce679862c47a75225.js
2018-07-27 15:17:14 +0900 JST        22225      Standard   D9512476DCD0415349BEBED038BCD723      oss://test-cli/static/js/app.b22ce679862c47a75225.js.map
2018-07-27 15:17:14 +0900 JST          857      Standard   323055C248C0CBF6E12CF4B27D6DFD9B      oss://test-cli/static/js/manifest.2ae2e69a05c33dfc65f8.js
2018-07-27 15:17:14 +0900 JST         4972      Standard   549EF9C1482F2D5944947F3D2C4B8CF1      oss://test-cli/static/js/manifest.2ae2e69a05c33dfc65f8.js.map
2018-07-27 15:17:15 +0900 JST       112107      Standard   0A693543CBAD654EF586AE02F0304905      oss://test-cli/static/js/vendor.7fed9fa7b7ba482410b7.js
2018-07-27 15:17:18 +0900 JST       553317      Standard   384C08584781091DA6A8FB3A4323AF51      oss://test-cli/static/js/vendor.7fed9fa7b7ba482410b7.js.map
Object Number is: 14
0.545218(s) elapsed

まとめ

OSSを操作するCLIツールはいくつかありますがossutilを使うのがいいみたいです。

jp.alibabacloud.com