Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9304

S3オブジェクトの整合性について

$
0
0

1. はじめに

今年入って、Amazon Web Serviceを使用したアプリケーション開発する機会をいただき、様々なマネージドサービスに触りました。
その際、S3へファイルアップロードをする機能に携わったので、やった内容を残します。

環境

  • macOS X 10.15.1
  • .NET Core 2.1
  • aws-sdk-dotnet

要件

  • アップロードするファイルは主に動画ファイル(中には5GB以上のものも)
  • アップロードしたファイルは、その後、各種マネージドサービスで利用可能性あり(動画変換、AI...)
  • サービスポリシーの都合により、アップロードしたファイルとの整合性を担保する必要あり

2. やったこと

上記の要件を満たすために、ハッシュ値を使って整合性をとろうと考えました。AWSの様々な記事を読んでいくと、以下のことがわかりました。

  • PUT API を使用すると、ETagにMD5のハッシュ値が入る
  • ただし、マルチパートでアップロードすると、分割したファイルのMD5値を合算した値 – 分割数になってしまうこと
  • マルチパートアップロードの場合は各パートのアップロード時に実行する UploadPart の Content-MD5 にて、パートのMD5ダイジェスト値を渡すことで整合性の確認を行うことが可能

以上のことから、リクエストデータの中にパートのMD5ダイジェスト値を入れてマルチパートを使用してアップロードを行う実装に決めました。

以下のソースコードが実装した物です。

https://github.com/Takkiiii/aws-s3-sample
※認証情報や、パスなどは任意で変えて実行してください。

以上。


Viewing all articles
Browse latest Browse all 9304

Trending Articles