You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在FME中使用boto3为AWS S3对象添加标签?

FME为S3单个对象添加标签操作指南

前置准备

  • 确保FME关联的Python环境已安装AWS SDK for Python(boto3):打开FME对应的Python执行路径,运行pip install boto3即可完成安装
  • 提前配置AWS身份凭证:可通过AWS CLI生成~/.aws/credentials凭证文件,生产环境不建议在代码中硬编码访问密钥
  • 确认所用IAM身份拥有s3:PutObjectTagging接口的调用权限

方法1:Python Caller实现打标签(推荐)

在FME工作流的S3文件上传节点后接入Python Caller转换器,将以下代码写入Python Caller的代码编辑区:

import fme
import fmeobjects
import boto3

def add_s3_object_tag(feature):
    # 从FME要素属性中读取对应参数,可根据实际业务调整
    bucket_name = feature.getAttribute('s3_bucket_name')
    object_key = feature.getAttribute('s3_object_key')
    # 按业务需求自定义标签键值对
    tag_set = [
        {'Key': 'project_id', 'Value': feature.getAttribute('project_id')},
        {'Key': 'process_time', 'Value': feature.getAttribute('fme_run_time')},
        {'Key': 'source', 'Value': 'FME_automation'}
    ]
    
    s3_client = boto3.client('s3')
    # 调用S3原生接口为单个对象添加标签
    s3_client.put_object_tagging(
        Bucket = bucket_name,
        Key = object_key,
        Tagging = {'TagSet': tag_set}
    )
    # 打标签完成后添加状态标识
    feature.setAttribute('s3_tagging_status', 'success')

配置说明:

  • 提前在工作流中为上游要素补充s3_bucket_name、s3_object_key以及自定义标签所需的业务属性
  • 如果需要在上传文件时直接携带标签,可在调用S3上传接口(put_object)时直接传入Tagging参数,无需单独调用打标签接口

方法2:自定义转换器封装(复用场景可选)

如果需要在多个工作流中复用打标签能力,可将上述逻辑封装为自定义转换器:

  • 新建自定义转换器,定义输入参数:存储桶名称、对象键、标签键值对集合
  • 内置Python Caller执行打标签逻辑
  • 输出成功、失败两个端口,方便后续做分支异常处理

注意事项

  • S3单个对象最多支持10组标签,标签键最长128字符、值最长256字符,不要超出接口限制
  • 分片上传的大文件需要在分片合并完成后再调用打标签接口,否则标签会不生效

内容的提问来源于stack exchange,提问作者Victoria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:06:04