[小ネタ] Amazon S3 マルチパートアップロードの状況をサクッとコマンドで確認したい
こんにちは、クラウド事業本部 コンサルティング部の荒平(@eiraces)です。
Amazon S3に100MB以上のオブジェクトをアップロードする際は、マルチパートアップロードの利用がベストプラクティスとされています。(参照)
ユーザーが意図していなくても、CLIなどアップロード手法によっては 自動でマルチパートアップロードが開始 されますが、そのステータスを確認するのはコンソール上だとS3 Storage Lensなどを利用する必要があり少し煩雑です。
Trusted Advisor以外に手軽に確認できるものがあればよいのですが、一旦コマンドを確認することにしました。
公式のドキュメントはこちら:
なお、マルチパートアップロードは7日以上掛かるものに関してライフサイクルルールを設定することが推奨されており、Trusted Advisorでも検知されます。以下のブログもご参考ください。
環境上に存在するS3バケットのマルチパートアップロードを確認する
以下のコマンドで、アカウントに存在するマルチパートアップロードを一発確認できます。
for bucket in $(aws s3api list-buckets --query 'Buckets[*].Name' --output text); do
echo "Checking bucket: $bucket"
aws s3api list-multipart-uploads --bucket $bucket
echo "-----------------------"
done
以下のような出力が得られます。
-----------------------
Checking bucket: qtransform-vmware-target-xxx
{
"RequestCharged": null,
"Prefix": null
}
-----------------------
Checking bucket: sample-bucket-xxx
{
"RequestCharged": null,
"Prefix": null
}
-----------------------
Checking bucket: backup-xxx
{
"RequestCharged": null,
"Prefix": null
}
マルチパートアップロードがある場合は、UploadIdや開始時刻などと共に報告されます。
-----------------------
Checking bucket: bucketname-xxx
{
"Uploads": [
{
"UploadId": "xxx9V4L8qjTtnuNNXsCGqgJ2YKjzqK5AI7F3gCiPzQg5_J4ZZYFDjjn.v2M6jMYhyg.MxmKkfht0OwvwNm9we2.U6edP1v0gKXuxeNw9U5oEavAa1xV7pqs4DW.219d02NuBpho2ixxx",
"Key": "test-multipart-file",
"Initiated": "2025-05-21T07:15:42+00:00",
"StorageClass": "STANDARD",
"Owner": {
"DisplayName": "members-80686",
"ID": "30830a155ce930c8a0f2affd45220cfedb33bb59592b7fd4b948f9231b2xxx"
},
"Initiator": {
"ID": "arn:aws:iam::0000000000000:user/xxx",
"DisplayName": "xxx"
}
}
],
"RequestCharged": null,
"Prefix": null
}
-----------------------
マルチパートアップロードを手動で中断する
マルチパートアップロードの終了には以下コマンドを利用します。なお、自動化する場合は冒頭に引用したライフサイクルルールを利用することをお勧めします。
aws s3api abort-multipart-upload --bucket バケット名 --key オブジェクトキー --upload-id アップロードID
コマンド例:
aws s3api abort-multipart-upload \
--bucket bucketname-xxx \
--key test-multipart-file \
--upload-id "xxx9V4L8qjTtnuNNXsCGqgJ2YKjzqK5AI7F3gCiPzQg5_J4ZZYFDjjn.v2M6jMYhyg.MxmKkfht0OwvwNm9we2.U6edP1v0gKXuxeNw9U5oEavAa1xV7pqs4DW.219d02NuBpho2ixxx"
おわりに
S3のマルチパートアップロードについて問い合わせを受けたので執筆してみました。
管理者側からすると、ユーザーが意図して放置しているのか、それとも不要なのか判別が付きづらいとのことで開始した時間・ユーザー名・オブジェクトキーが分かるのは有用ですね。
このエントリが誰かの助けになれば幸いです。
それでは、クラウド事業本部 コンサルティング部の荒平がお送りしました!
参考