2016-11-02 3 views
0

私は、ストレージJSON APIを使用しています。GCPストレージ - 再開可能なアップロードでカスタムメタデータを設定するには?

編集具体的には:

Iとき:

POST https://www.googleapis.com/upload/storage/v1/b/myBucket/o?uploadType=resumable HTTP/1.1 
Authorization: Bearer [MY_AUTH_TOKEN] 
Content-Length: 38 
Content-Type: application/json; charset=UTF-8 
X-Upload-Content-Type: image/jpeg 
X-Upload-Content-Length: 2000000 

{ "name": "myObject", "foo": "bar" } 

は次に、ファイルの名前が設定されている場合にのみ、私はmetadata分野で"foo" : "bar"を見てみたいと思います。

documentation

(1)

ザ/メディアのため、URIをアップロードします。/uploadエンドポイントの形式は、/ uploadプレフィックスを持つ標準リソースURIの です。 メディアデータ自体を転送する場合は、このURIを使用します。例:POST /upload/storage/v1/b/myBucket/o。

そして

(2)

標準リソースURI、メタデータのため。リソースに のデータフィールドがある場合、これらのフィールドはアップロードされたファイル を記述するメタデータを格納するために使用されます。 のメタデータ値を作成または更新するときにこのURIを使用できます。例:POST/storage/v1/b/myBucket/o。

彼らはまた/upload(1)要求の例として言う:あなたは、ファイルのメタデータを持っている場合はJSON形式のリクエスト 体にメタデータを追加、

。それ以外の場合は、要求本体を空のままにします。

これらは少し矛盾します。

それにもかかわらず、/uploadにjsonボディを送信すると、「name」属性を設定するだけで動作します。メタデータ要求に同じJSON本体を送信

は私を取得:

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "wrongUrlForUpload", 
    "message": "Upload requests must include an uploadType URL parameter and a URL path beginning with /upload/", 
... 

感謝を! :)

編集:これは主にそのファイルを所属する人に割り当て、ハッシュを検証するため、イメージのnameでこれを完全に回避できます。

+0

を - ドキュメントの例では、これを行う方法を示しています。あなたのために働いていないリクエスト/レスポンスについて、より具体的に質問できますか? –

答えて

3

メッセージボディのこの種の使用、JSON APIを介して、あなたのオブジェクトのアップロード時にカスタムメタデータを設定するには:あなたはメタデータのみを変更している場合を除き、再開可能uploadType =と/アップロードエンドポイントを使用し

{"name": "myObject", "metadata": {"foo": "bar"}}

+0

恐ろしい!どうもありがとうございます :) – Azr

関連する問題