Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
aws-sdk を v3 へ更新
S3Service, DriveServiceのコード・テスト更新
Why
#10170
Additional info (optional)
GoogleCloudStorage (GCS)
存在しないキーへのDelete
GCS は 404 を返すので NoSuchKey 扱い
S3, MinIO, Wasabi は 204 を返すので正常扱い
MultipartUpload
GCS は2021年よりMultipartUploadに対応しているがチャンク数上限が32個なのとaws-sdkから実行すると
レスポンスパラメーターのキーが合わずエラーになるのでpartSizeを引き上げる動作は変えていない。他
S3Client取得をupload()/delete()の中に入れたが強い理由はない。
S3Serviceは薄くて、DriveServiceでdeleteのテストがあるのでS3ServiceのUnitには作らなかった。
ほとんどのアップロードが10MB以下の画像・音声で、上限を100MBのように決めてしまうならMultipartUploadでなくPutObjectにしてもよい気がした。
GCSのクセがつよい。
追記
32
は 並列複合アップロード https://cloud.google.com/storage/docs/parallel-composite-uploads?hl=ja とXML API マルチパートアップロード https://cloud.google.com/storage/docs/multipart-uploads?hl=ja を混同していたかもしれない。Checklist