前回( PostmanでS3バケットにファイルを送信する)の続きで、ヘッダを増やしてAPI送信します。
やること
PostmanでS3のlifecycle configuration APIを送信します。
サンプルはこちらのものを使います。
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
bodyは<LifecycleConfiguration>からの部分です。設定は2つあり、
- id1ではdocuments/フォルダ内のオブジェクトは30日経ったらGlacierに移動
- id2ではlogs/フォルダのものが365日経ったら削除
headerのうち、PUT、Hostの部分はPostman内で書き込みます。
x-amz-date、Authorization、Content-Lengthは、Postmanがデフォルトで自動で生成してくれます。
Content-MD5もPostman内で計算しますが、別途設定が 必要です。
MD5がないとこのようなエラーが出たりします。
<Error><Code>InvalidRequest</Code><Message>Missing required header for this request: Content-MD5</Message>
PUT /?lifecycle HTTP/1.1 Host: examplebucket.s3.<Region>.amazonaws.com x-amz-date: Wed, 14 May 2014 02:11:21 GMT Content-MD5: q6yJDlIkcBaGGfb3QLY69A== Authorization: authorization string Content-Length: 415 <LifecycleConfiguration> <Rule> <ID>id1</ID> <Filter> <Prefix>documents/</Prefix> </Filter> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>GLACIER</StorageClass> </Transition> </Rule> <Rule> <ID>id2</ID> <Filter> <Prefix>logs/</Prefix> </Filter> <Status>Enabled</Status> <Expiration> <Days>365</Days> </Expiration> </Rule> </LifecycleConfiguration>
設定
PUT 、 your-bucketname.s3.your-region.amazonaws.com/?lifecycle
と入力します。your-bucketnameはバケット名、your-regionはregion名です。
PUT /?lifecycle HTTP/1.1Host: examplebucket.s3.<Region>.amazonaws.com
となっていた 部分を反映しています。
Pre-request ScriptタブでContent-MD5 計算
タブ内でmd5を計算するスクリプトを書きます。
100%こちらを参考にしています。
https://raaviblog.com/how-to-generate-content-md5-value-base64-encoded-128-bit-md5-of-the-data/
ここではリクエストボディをMD5ハッシュにして、base64にして、contentMD5というGlobalVariableにアサインしています。
Headersタブ
Body タブ
実行
curl --location --request PUT 'xxxxx.s3.region.amazonaws.com/?lifecycle' \--header 'Content-MD5: xxxxx' \--header 'X-Amz-Content-Sha256: xxxxx' \--header 'X-Amz-Date: xxxxx' \--header 'Authorization: AWS4-HMAC-SHA256 Credential=xxxxx/xxxxx/region/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=xxxxx' \--header 'Content-Type: text/plain' \--data-raw '<LifecycleConfiguration>....</LifecycleConfiguration>'
0 件のコメント:
コメントを投稿