ITmedia NEWS > 速報 >

Amazon S3が「条件付き書き込み」に対応 既にオブジェクトがある場合は上書きせず、分散アプリケーションでの利用が容易に

» 2024年08月28日 10時55分 公開
[新野淳一ITmedia]

この記事は新野淳一氏のブログ「Publickey」に掲載された「Amazon S3が「条件付き書き込み」に対応。既にオブジェクトがある場合は上書きせず、分散アプリケーションでの利用が容易に」(2024年8月26日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。

 米Amazon Web Servicesは、オブジェクトストレージを提供する「Amazon S3」の新機能として「条件付き書きこみ」(Conditional Writes)をサポートしたことを発表しました。

 条件付き書き込みを利用すると、オブジェクトの書き込み時にオブジェクトの存在をチェックし、オブジェクトが存在しない時だけ書き込む、という指定が可能になります。

 これにより、アプリケーションがデータをAmazon S3に書き込む際に、既存のオブジェクトを上書きすることを簡単に防ぐことができるようになります。

 例えば、複数のクライアントが同一オブジェクトにデータを書き込んでいくような分散処理において、不用意に既存のデータを上書きしないように書き込む直前にオブジェクトを確認するといった処理をアプリケーションで作りこむ必要がなくなり、Amazon S3に任せることができるため、Amazon S3を使った分散アプリケーションの開発がよりシンプルになることが期待されます。

 Amazon S3のドキュメントによると、条件付き書き込みの機能は「PutObject」と「CompleteMultipartUpload」の2つのAPIでサポートされています。

 このAPIを呼び出す際のリクエストのヘッダに「If-None-Match」を付けると、該当するキーのオブジェクトがバケット内に存在せず書き込みが成功した場合には「200 OK」のステータスが返り、該当するキーが存在した場合には書き込みは失敗して「412 Precondition Faild」が返ります。

 同時リクエストが発生して、オブジェクトに対する条件付き書き込み操作が完了する前にオブジェクトに対する削除リクエストが成功すると、「409 Conflict」が返る場合があると説明されています。

 Amazon S3は条件付き読み込み、条件付き書き込みの両方の機能を備えたことになります。

Copyright © ITmedia, Inc. All Rights Reserved.