2017-03-23 17 views
1

aws s3にファイルをアップロードするためのNodeプログラムがあります。リクエストヘッダでx-amz-taggingを指定する必要があります。私は何かを試みたが、それは動作しません!x-amz-taggingリクエストヘッダを使ってタグを指定する

function buildRequestHeader() { 
 
    return { 
 
    'Content-Length': fileBuffer.size, 
 
    'Content-Type': mimeType, 
 
    'x-amz-acl': 'public-read', 
 
    'x-amz-tagging' :{"tag1":'abcd',"tag2":'efgh'} 
 
    } 
 
}

私はAWSのドキュメントから何かを見ている、

PUT object-key?tagging HTTP/1.1 
 
Host: examplebucket.s3.amazonaws.com 
 
Content-Length: length 
 
Content-MD5: pUNXr/BjKK5G2UKExample== 
 
x-amz-date: 20160923T001956Z 
 
Authorization: authorization string 
 
<Tagging> 
 
    <TagSet> 
 
     <Tag> 
 
     <Key>tag1</Key> 
 
     <Value>val1</Value> 
 
     </Tag> 
 
     <Tag> 
 
     <Key>tag2</Key> 
 
     <Value>val2</Value> 
 
     </Tag> 
 
    </TagSet> 
 
</Tagging>

あなたはそれがどのように動作するかを説明していただけますか?

答えて

2

あなたが表示するコードスニペットは、2つの異なるタグ付け方法からのものです。最初はobject creationの間であり、2番目はadding tags to an existing objectです。

x-amz-taggingヘッダーは、オブジェクトの作成時に使用するヘッダーですが、例ではdifferent syntaxを使用しています。代わりにこれを試してみてください:

function buildRequestHeader() { 
    return { 
    'Content-Length': fileBuffer.size, 
    'Content-Type': mimeType, 
    'x-amz-acl': 'public-read', 
    'x-amz-tagging': 'tag1=abcd&tag2=efgh' 
    } 
} 
+0

ありがとう、それは完璧に動作します。 – Sabreena

0

const fs= require('fs'); 
 
const AWS = require('aws-sdk'); 
 
const s3 = new AWS.S3({'accesskey':'accesskeyvalue','region':'your s3 region'}) 
 

 
s3.upload(
 
    { 
 
    Bucket: bucket_name, 
 
    Key: key, 
 
    Tagging: 'tag1=abcd&tag2=efgh', 
 
    Body: fs.createReadStream('./filename.filetype'), 
 
    }

この方法も取り組んでいます!

関連する問題