すべてのプロダクト
Search
ドキュメントセンター

:使用例

最終更新日:Sep 24, 2026

このトピックでは、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:  1

    AccessKey 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 getallbucket

    OSS の新規ユーザーでバケットを作成していない場合、出力は空です。

  • バケットを作成する

    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) elapsed
  • Referer 設定を取得する

    $ 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) elapsed
  • Referer 設定を取得する

    $ 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