【问题标题】:Specify tags using the x-amz-tagging request header使用 x-amz-tagging 请求标头指定标签
【发布时间】:2017-03-23 06:11:40
【问题描述】:

我有一个用于将文件上传到 aws s3 的 Node 程序,我需要使用请求标头指定 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>

你能解释一下它是如何工作的吗?

【问题讨论】:

    标签: javascript node.js amazon-web-services amazon-s3 http-post


    【解决方案1】:

    您显示的代码 sn-ps 来自两种不同的标记方法,第一种是在object creation 期间,第二种是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'
      }
    }
    

    【讨论】:

      【解决方案2】:

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

      这个方法也有效!!

      【讨论】:

        猜你喜欢
        • 2017-08-21
        • 1970-01-01
        • 2020-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多