8.6. オブジェクトの削除¶
-
DELETE
/1/
(tenantId)/objects/
(bucketName)/
(objectId)¶ オブジェクトを削除する。
Request Headers: - X-Application-Id -- アプリケーションID(必須)
- X-Application-Key -- アプリケーションキー(必須)
- X-Session-Token -- セッショントークン(オプション)
Parameters: - bucketName (string) -- バケット名
- objectId (string) -- オブジェクトID
Query Parameters: - etag (string) -- ETag値
- deleteMark (int) -- 論理削除を行う場合は1
Status Codes: - 200 OK -- 正常終了
- 400 Bad Request -- パラメータ不正
- 401 Unauthorized -- 認証エラー
- 403 Forbidden -- 権限エラー
- 404 Not Found -- 該当バケットまたはデータが存在しない
- 409 Conflict -- 更新が衝突した(request_conflicted)、ETag 不一致(etag_mismatch)
クエリパラメータの詳細
etag で ETag 値を指定した場合、サーバ側データの ETag 値との比較が行われ、一致しなかった場合は 409 Conflict が返却される。 レスポンスには、サーバ側のオブジェクト情報を含む JSON データが返却される。
deleteMark を 1 に指定した場合、論理削除される(実データは削除せず削除マークのみを true に設定する)。 updatedAt および etagは自動更新される。
以下に deleteMark を 1 に指定した場合のレスポンス例を示す。
{ "_id": "521c36d4ac521e1ffa000007", "name": "Foo", //データの内容は保持される "ACL": { "owner": "xxxxx", "r": ["g:authenticated"], "w": ["g:authenticated"], }, "createdAt": "2013-08-27T05:19:16.000Z", "updatedAt": "2013-08-27T05:19:16.000Z", // 更新される "etag": "8c92c97e-01a7-11e4-9598-53792c688d1b", // 更新される "_deleted": true // セットされる }
サーバ負荷への影響が大きいため、delete処理では再送処理対応(requestToken)をサポートしない。 (サーバ側で処理済みのオブジェクトに対して再送があった場合、Conflictとして処理される)
レスポンスボディ
- 完全削除の場合、レスポンスなし(空のJSON)。
- 論理削除(deleteMark=1)の場合、論理削除オブジェクト情報を含むJSONデータ。
- 409 Conflictの場合はその原因をJSON形式で返す。
注意事項
- バケットcontentACLと対象オブジェクトの delete 権限が必要