osscmd のインストールと設定

Linux または Windows で SDK インストーラをダウンロードした後、ダウンロードしたパケットを解凍して osscmd の使用を開始します。

使用方法を取得するため、python osscmd を直接実行します。 すべてのコマンドには 2 つの実行モードがあります。 たとえば、ユーザーが作成したバケットをクエリするとします。 gs コマンド ("get service" の略) が実行されます。

  • 方法 1: ID およびキーを指定しない場合、osscmd は既定のファイルから ID およびキーを読み取ります。
    $ python osscmd gs
    can't get accessid/accesskey, setup use : config --id=accessid --key=accesskey
    このようなプロンプトが表示された場合は、ID およびキーが正しく設定されていないことを示しています。 ステップ 2 の設定コマンドをご参照ください。
    ID およびキーが正しく設定され有効になったら、コマンドを実行します。
    $ python osscmd gs
    2013-07-19 08:11 test-oss-sample
    Bucket Number is: 1
  • 方法2: コマンドに ID およびキーを指定すると、osscmd はコマンドラインから ID およびキーを読み取ります。 ID およびキーが有効の場合、コマンドを実行すると以下の結果が表示されます。
    $ python osscmd gs --id=your_id --key=your_key --host=your_endpoint
    2013-07-19 08:11 test-oss-sample
    Bucket Number is: 1

    ユーザーの ID およびキーを既定のファイルに設定するには、次のコマンドを実行します。 既定の oss ホストは oss.aliyuncs.com です。

    $python osscmd config --id=your_id --key=your_key --host=your_endpoint

    "設定は ~ に保存されます" などのプロンプトが表示された場合、ID およびキーが正常に保存されたことを示しています。

基本操作

  • 作成したバケットの一覧表示
    $python osscmd getallbucket

    OSS ユーザーがバケットを作成しなかった場合、出力は空になります。

  • バケットの作成

    "mybucketname" という名前のバケットを作成します。

    $python osscmd createbucket mybucketname

    OSS のバケットの名前はグローバルに一意です。他の誰かがこの名前のバケットを作成した可能性があるため、"mybucketname" という名前のバケットの作成に失敗する可能性があります。 バケットの作成に失敗した場合、プロジェクト名を変更する必要があります。 たとえば、バケット名に特定の日付を追加します。

  • バケットが正常に作成されたかどうかの確認
    $ python osscmd getallbucket

    失敗した場合は、返されるエラーメッセージを確認します。

  • オブジェクトの表示

    バケットの作成が成功したら、バケット内のオブジェクトを確認します。

    $python osscmd list oss://mybucketname/

    オブジェクトはバケットに含まれていないため、出力は空です。

  • オブジェクトのアップロード

    バケットにオブジェクトを 1 つアップロードします。 ローカルファイルの名前が "local_existed_file" の場合、MD5 値は次のようになります。

    $ md5sum local_existed_file 7625e1adc3a4b129763d580ca0a78e44 local_existed_file
    $ python osscmd put local_existed_file oss://mybucketname/test_object
    md5sum コマンドは、Windows ではなく Linux で使用されます。
  • オブジェクトの再表示

    バケットが正常に作成されたら、バケット内でオブジェクトをもう一度確認します。

    $python osscmd list oss://mybucketname/
  • オブジェクトのダウンロード

    オブジェクトをバケットからローカルにダウンロードし、ダウンロードしたファイルの md5 値を比較します。

    $ python osscmd get oss://mybucketname/test_object download_file
    $ md5sum download_file 
    7625e1adc3a4b129763d580ca0a78e44 download_file
    md5sum コマンドは、Windows ではなく Linux で使用されます。
  • オブジェクトの削除

    $ python osscmd delete oss://mybucketname/test_object

  • バケットの削除
    バケットにオブジェクトが含まれている場合、バケットは削除できません。
    $ python osscmd deletebucket mybucketname

ライフサイクルの使用

  • ライフサイクル用 XML テキストファイルの設定
    <LifecycleConfiguration>
        <Rule> 
            <ID>1125</ID>
            <Prefix>log_backup/</Prefix>
            <Status>Active</Status>
            <Expiration>
                <Days>2</Days>
            </Expiration>
        </Rule> 
    </LifecycleConfiguration>

    これは、現在時刻から 2 日以上経過したバケット内の "log_backup/" というプレフィックスを持つオブジェクトを削除することを示します。 詳細な規則の設定については、「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>Active</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!

アンチリーチ 設定

  • 空のリファラーのアクセスを許可
    $osscmd putreferer oss://test --allow_empty_referer=true
    0.004(s) elapsed
  • 設定済みのリファラーの取得
    $osscmd getreferer oss://test
    <? xml version="1.0" encoding="UTF-8"? >
    <RefererConfiguration>
      <AllowEmptyReferer>true</AllowEmptyReferer>
      <RefererList />
    </RefererConfiguration>
  • 空のリファラーは許可せず、 テストリファラー要求のみを許可
    $osscmd putreferer oss://test --allow_empty_referer=false --referer='www.test.com'
    0.092(s) elapsed
  • 設定済みのリファラーの取得
    $osscmd getreferer oss://test
    <? xml version="1.0" encoding="UTF-8"? >
    <RefererConfiguration>
      <AllowEmptyReferer>false</AllowEmptyReferer>
      <RefererList>
        <Referer>www.test.com</Referer>
      </RefererList>
    </RefererConfiguration>
  • 空のリファラーを許可せず、 test および test1 リファラー要求のみを許可
    $osscmd putreferer oss://test --allow_empty_referer=false --referer='www.test.com,www.test1.com'
  • 設定済みのリファラーの取得
    $osscmd getreferer oss://test
    <? xml version="1.0" encoding="UTF-8"? >
    <RefererConfiguration>
      <AllowEmptyReferer>false</AllowEmptyReferer>
      <RefererList>
        <Referer>www.test.com</Referer>
        <Referer>www.test1.com</Referer>
      </RefererList>
    </RefererConfiguration>

ログの使用

  • ログの設定
    $osscmd putlogging oss://mybucket oss://myloggingbucket/mb
  • ログの取得
    $osscmd getlogging oss://mybucket