このトピックでは、osscmd の使用例について説明します。
osscmd は 2019 年 7 月 31 日に非推奨となりました。Alibaba Cloud は osscmd のメンテナンスおよび更新を終了しました。osscmd のコマンドは ossutil に統合されています。代わりに ossutil を使用してください。
osscmd のインストールと設定
Linux または Windows でソフトウェア開発キット (SDK) パッケージをダウンロードして解凍することで、osscmd を使用できます。
使用方法を確認するには、Python osscmd コマンドを実行します。各コマンドには 2 つの実行モードがあります。次の例では、gs コマンドを実行して作成したバケットをクエリする方法を示します。
方法 1: AccessKey ID と AccessKey Secret を指定しない場合、osscmd はデフォルトの設定ファイルからそれらを読み取ります。
$ python osscmd gs can't get accessid/accesskey, setup use : config --id=accessid --key=accesskey説明このメッセージが表示される場合、AccessKey ID と AccessKey Secret が設定されていません。設定コマンドについては、方法 2 をご参照ください。
AccessKey ID と AccessKey Secret が設定され、有効である場合、コマンドを実行できます。
$ python osscmd gs 2021-07-19 08:11 test-oss-sample Bucket Number is: 1方法 2: コマンドで AccessKey ID と AccessKey Secret を指定できます。osscmd はコマンドラインからそれらを読み取ります。AccessKey ID と AccessKey Secret が有効である場合、コマンドは次の結果を返します。
$ python osscmd gs --id=your_id --key=your_key --host=your_endpoint 2021-07-19 08:11 test-oss-sample Bucket Number is: 1AccessKey ID と AccessKey Secret をデフォルトの設定ファイルに保存するには、次のコマンドを実行します。デフォルトの OSS ホストは oss.aliyuncs.com です。
$ python osscmd config --id=your_id --key=your_key --host=your_endpoint"Your configuration is saved into" のようなメッセージが表示される場合、AccessKey ID と AccessKey Secret が保存されたことを示します。
基本操作
作成済みのバケットを一覧表示する
$ python osscmd getallbucketOSS の新規ユーザーでバケットを作成していない場合、出力は空です。
バケットを作成する
mybucketname という名前のバケットを作成します。
$ python osscmd createbucket mybucketnameバケット名は OSS 内でグローバルに一意である必要があるため、バケットの作成が失敗する場合があります。この場合、特定の日付を含む名前など、別のバケット名を使用してください。
作成が成功したことを確認します。
$ python osscmd getallbucket操作が失敗した場合は、osscmd のエラーメッセージを確認してください。
オブジェクトを表示する
バケットを作成したら、その中のオブジェクトを表示できます。
$ python osscmd list oss://mybucketname/バケットにオブジェクトが含まれていないため、出力は空です。
オブジェクトをアップロードする
バケットにオブジェクトをアップロードできます。ローカルファイルの名前が local_existed_file で、その MD5 ハッシュが次のとおりであるとします。
$ md5sum local_existed_file 7625e1adc3a4b129763d580ca0a78e44 local_existed_file $ python osscmd put local_existed_file oss://mybucketname/test_object説明md5sumは Linux コマンドであり、Windows では使用できません。オブジェクトを再度表示する
オブジェクトがアップロードされている場合、バケット内のオブジェクトを再度表示できます。
$ python osscmd list oss://mybucketname/オブジェクトをダウンロードする
バケットからローカルファイルにオブジェクトをダウンロードし、その MD5 ハッシュを比較します。
$ python osscmd get oss://mybucketname/test_object download_file $ md5sum download_file 7625e1adc3a4b129763d580ca0a78e44 download_file説明md5sumは Linux コマンドであり、Windows では使用できません。オブジェクトを削除する
$ python osscmd delete oss://mybucketname/test_object
バケットを削除する
説明オブジェクトが含まれている場合、バケットは削除できません。
$ python osscmd deletebucket mybucketname
ライフサイクルの使用
XML テキストファイルにライフサイクルルールを設定する
<LifecycleConfiguration> <Rule> <ID>1125</ID> <Prefix>log_backup/</Prefix> <Status>Enabled</Status> <Expiration> <Days>2</Days> </Expiration> </Rule> </LifecycleConfiguration>このルールは、プレフィックスが log_backup/ で、2 日以上経過したオブジェクトを削除します。ルールの設定方法の詳細については、「API リファレンス」をご参照ください。
ライフサイクルの書き込み
python osscmd putlifecycle oss://mybucket lifecycle.xml 0.150 (s) elapsedライフサイクルを読み取る
python osscmd getlifecycle oss://mybucket <?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>1125</ID> <Prefix>log_backup/</Prefix> <Status>Enabled</Status> <Expiration> <Days>2</Days> </Expiration> </Rule> </LifecycleConfiguration> 0.027 (s) elapsedライフサイクルを削除する
python osscmd deletelifecycle oss://mybucket 0.139 (s) elapsedライフサイクルを読み取る
python osscmd getlifecycle oss://mybucket Error Headers: [('content-length', '288'), ('server', 'AliyunOSS'), ('connection', 'close'), ('x-oss-request-id', '54C74FEE5D7F6B24E5042630'), ('date', 'Tue, 27 Jan 2015 08:44:30 GMT'), ('content-type', 'application/xml')] Error Body: <?xml version="1.0" encoding="UTF-8"?> <Error> <BucketName>mybucket</BucketName> <Code>NoSuchLifecycle</Code> <Message>No Row found in Lifecycle Table.</Message> <RequestId>54C74FEE5D7F6B24E5042630</RequestId> <HostId>mybucket.oss-maque-hz-a.alibaba.net</HostId> </Error> Error Status: 404 getlifecycle Failed!
ホットリンク保護の設定
Referer ヘッダーが空のリクエストを許可する
$ osscmd putreferer oss://test --allow_empty_referer=true 0.004 (s) elapsedReferer 設定を取得する
$ osscmd getreferer oss://test <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>true</AllowEmptyReferer> <RefererList /> </RefererConfiguration>Referer ヘッダーが空のリクエストを拒否し、www.example.com からのリクエストのみを許可する
$ osscmd putreferer oss://test --allow_empty_referer=false --referer='www.example.com' 0.092 (s) elapsedReferer 設定を取得する
$ osscmd getreferer oss://test <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>false</AllowEmptyReferer> <RefererList> <Referer>www.example.com</Referer> </RefererList> </RefererConfiguration>Referer ヘッダーが空のリクエストを拒否し、www.example.com と www.example.org からのリクエストのみを許可する
$ osscmd putreferer oss://test --allow_empty_referer=false --referer='www.example.com,www.example.org'Referer 設定を取得する
$ osscmd getreferer oss://test <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>false</AllowEmptyReferer> <RefererList> <Referer>www.example.com</Referer> <Referer>www.example.org</Referer> </RefererList> </RefererConfiguration>
ロギングの使用
ロギングを有効にする
$ osscmd putlogging oss://mybucket oss://myloggingbucket/mbロギング設定を取得する
$ osscmd getlogging oss://mybucket