admin管理员组

文章数量:1313121

I have a Node program for file uploading to aws s3, I need to specify the x-amz-tagging with the request header. I tried something but it doesn't work!

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

I have a Node program for file uploading to aws s3, I need to specify the x-amz-tagging with the request header. I tried something but it doesn't work!

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

I have seen something from aws docs,

PUT object-key?tagging HTTP/1.1
Host: examplebucket.s3.amazonaws.
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>

Could you please explain how it works?

Share Improve this question asked Mar 23, 2017 at 6:11 SabreenaSabreena 6492 gold badges13 silver badges25 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 6

The code snippets you show are from two different methods of tagging, the first during object creation, the second is adding tags to an existing object.

The x-amz-tagging header is what you would use during object creation, but it uses a different syntax than in your example. Try this instead:

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

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'),
  }

this method is also working!!

本文标签: javascriptSpecify tags using the xamztagging request headerStack Overflow