【问题标题】:Adding s3 object tags using a lambda function?使用 lambda 函数添​​加 s3 对象标签?
【发布时间】:2018-09-21 11:13:13
【问题描述】:

文档描述了如何通过控制台tag an s3 object。我们如何使用 lambda 函数以编程方式执行此操作?

【问题讨论】:

  • 即将发布一篇向您展示如何执行此用例的新 AWS 文章。此用例是使用 Java Lambda 运行时 API 实现的。它会自动生成标签并将其应用于给定 S3 存储桶中的对象。我会尽快在此处发布链接。

标签: amazon-web-services amazon-s3 aws-lambda aws-sdk


【解决方案1】:

如果您在您的 Lambda 中使用 JavaScript,您可以使用:s3.putObjectTagging

文档片段

/* The following example adds tags to an existing object. */

 var params = {
  Bucket: "examplebucket", 
  Key: "HappyFace.jpg", 
  Tagging: {
   TagSet: [
      {
     Key: "Key3", 
     Value: "Value3"
    }, 
      {
     Key: "Key4", 
     Value: "Value4"
    }
   ]
  }
 };
 s3.putObjectTagging(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log(data);           // successful response
   /*
   data = {
    VersionId: "null"
   }
   */
 });

【讨论】:

    【解决方案2】:

    您也可以为此使用ResourceGroupsTaggingAPI

    const resourcegroupstaggingapi = new AWS.ResourceGroupsTaggingAPI();
    
    resourcegroupstaggingapi.tagResources({
        ResourceARNList: [ 
            'arn:aws:s3<...>',
            'arn:aws:s3<...>'
        ],
        Tags: { 
            'SomeTagKey': 'Some tag value',
            'AnotherTagKey': 'Another tag value'
        }        
    }, (err, result) => {
        // callback
    });
    

    【讨论】:

      【解决方案3】:

      如果您使用 AWS SDK for node 与 S3 进行交互,只需将 Tagging 字段添加到将放入 S3 存储桶中的对象即可。

      // Create an object to be sent to S3
      var params = {
        Body: <Binary String>, 
        Bucket: "examplebucket", 
        Key: "HappyFace.jpg", 
        Tagging: "key1=value1&key2=value2"
       };
      
      // Put the params object to s3
      s3.putObject(params, function(err, data) {
         if (err) {
           console.log(err, err.stack); // an error occurred
         } else {
           console.log(data);           // successful response
         }
      

      https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html

      【讨论】:

        【解决方案4】:

        您可以创建一个能够自动标记 Amazon S3 存储桶中所有资产的 Lambda 函数。例如,假设您有这样的资产:

        执行 Lambda 函数后,它会创建标签并将其应用于图像。

        更多信息,请点击Creating an Amazon Web Services Lambda function that tags digital assets located in Amazon S3 buckets

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-01-08
          • 2021-07-10
          • 2020-04-30
          • 2019-01-30
          • 2020-01-29
          • 2021-06-09
          • 2022-10-14
          • 2016-02-17
          相关资源
          最近更新 更多