PutS3Object

文档中心 › 组件索引 › PutS3Object

PutS3Object Processor

类型全限定名:cn.org.acal.lynxus.processors.aws.s3.PutS3Object

所属 Bundle:cn.org.acal.lynxus:lynxus-aws-nar:2.11.8

描述

将 FlowFile 的内容作为 S3 对象写入 Amazon S3 存储桶。

标签

AmazonS3AWSArchivePut

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Bucket${s3.bucket}与之交互的 S3 存储桶
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Object Key${filename}要使用的 S3 对象密钥。 这类似于传统文件系统的文件名。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Regionus-west-2
  • Africa (Cape Town) — AWS Region Code : af-south-1
  • Asia Pacific (Hong Kong) — AWS Region Code : ap-east-1
  • Asia Pacific (Hyderabad) — AWS Region Code : ap-south-2
  • Asia Pacific (Jakarta) — AWS Region Code : ap-southeast-3
  • Asia Pacific (Malaysia) — AWS Region Code : ap-southeast-5
  • Asia Pacific (Melbourne) — AWS Region Code : ap-southeast-4
  • Asia Pacific (Mumbai) — AWS Region Code : ap-south-1
  • Asia Pacific (New Zealand) — AWS Region Code : ap-southeast-6
  • Asia Pacific (Osaka) — AWS Region Code : ap-northeast-3
  • Asia Pacific (Seoul) — AWS Region Code : ap-northeast-2
  • Asia Pacific (Singapore) — AWS Region Code : ap-southeast-1
  • Asia Pacific (Sydney) — AWS Region Code : ap-southeast-2
  • Asia Pacific (Taipei) — AWS Region Code : ap-east-2
  • Asia Pacific (Thailand) — AWS Region Code : ap-southeast-7
  • Asia Pacific (Tokyo) — AWS Region Code : ap-northeast-1
  • AWS European Sovereign Cloud (Germany) — AWS Region Code : eusc-de-east-1
  • aws global region — AWS Region Code : aws-global
  • AWS GovCloud (US-East) — AWS Region Code : us-gov-east-1
  • AWS GovCloud (US-West) — AWS Region Code : us-gov-west-1
  • aws-cn global region — AWS Region Code : aws-cn-global
  • aws-iso global region — AWS Region Code : aws-iso-global
  • aws-iso-b global region — AWS Region Code : aws-iso-b-global
  • aws-iso-e global region — AWS Region Code : aws-iso-e-global
  • aws-iso-f global region — AWS Region Code : aws-iso-f-global
  • aws-us-gov global region — AWS Region Code : aws-us-gov-global
  • Canada (Central) — AWS Region Code : ca-central-1
  • Canada West (Calgary) — AWS Region Code : ca-west-1
  • China (Beijing) — AWS Region Code : cn-north-1
  • China (Ningxia) — AWS Region Code : cn-northwest-1
  • EU ISOE West — AWS Region Code : eu-isoe-west-1
  • Europe (Frankfurt) — AWS Region Code : eu-central-1
  • Europe (Ireland) — AWS Region Code : eu-west-1
  • Europe (London) — AWS Region Code : eu-west-2
  • Europe (Milan) — AWS Region Code : eu-south-1
  • Europe (Paris) — AWS Region Code : eu-west-3
  • Europe (Spain) — AWS Region Code : eu-south-2
  • Europe (Stockholm) — AWS Region Code : eu-north-1
  • Europe (Zurich) — AWS Region Code : eu-central-2
  • Israel (Tel Aviv) — AWS Region Code : il-central-1
  • Mexico (Central) — AWS Region Code : mx-central-1
  • Middle East (Bahrain) — AWS Region Code : me-south-1
  • Middle East (UAE) — AWS Region Code : me-central-1
  • South America (Sao Paulo) — AWS Region Code : sa-east-1
  • US East (N. Virginia) — AWS Region Code : us-east-1
  • US East (Ohio) — AWS Region Code : us-east-2
  • US ISO East — AWS Region Code : us-iso-east-1
  • US ISO WEST — AWS Region Code : us-iso-west-1
  • US ISOB East (Ohio) — AWS Region Code : us-isob-east-1
  • US ISOB West — AWS Region Code : us-isob-west-1
  • US ISOF EAST — AWS Region Code : us-isof-east-1
  • US ISOF SOUTH — AWS Region Code : us-isof-south-1
  • US West (N. California) — AWS Region Code : us-west-1
  • US West (Oregon) — AWS Region Code : us-west-2
  • Use Custom Region — 用户定义的区域,可以是非 AWS 区域,和/或来自表达式语言(Expression Language)
服务所在的 AWS 区域
Custom Region自定义区域,例如 AWS 兼容服务提供商的区域
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
AWS Credentials Provider Service控制器服务 API:
AwsCredentialsProviderService
cn.org.acal.lynxus-lynxus-aws-service-api-nar-2.11.8
用于获取AWS凭证提供者的Controller Service
Resource Transfer SourceFLOWFILE_CONTENT
  • FlowFile Content — 传入 FlowFile 的内容提供传输源
  • File Resource Service — 文件资源服务提供传输源
待传输内容的来源
File Resource Service控制器服务 API:
FileResourceService
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
文件资源服务提供对要传输的本地资源的访问
Storage ClassSTANDARD
  • DEEP_ARCHIVE
  • EXPRESS_ONEZONE
  • FSX_ONTAP
  • FSX_OPENZFS
  • GLACIER
  • GLACIER_IR
  • INTELLIGENT_TIERING
  • ONEZONE_IA
  • OUTPOSTS
  • REDUCED_REDUNDANCY
  • SNOW
  • STANDARD
  • STANDARD_IA
  • UNKNOWN_TO_SDK_VERSION
Encryption Service控制器服务 API:
AmazonS3EncryptionService
cn.org.acal.lynxus-lynxus-aws-service-api-nar-2.11.8
指定用于配置请求的加密服务控制器。FetchS3Object:仅在服务器端客户密钥加密的情况下需要配置。
Content Type设置 Content-Type HTTP 头,指示关联对象中存储的内容类型。此头的值是标准 MIME 类型。\n如果尚未设置,AWS S3 Java 客户端将尝试确定正确的内容类型。用户负责确保在上传流时设置了合适的内容类型。如果未提供内容类型且无法通过文件名确定,将使用默认内容类型 \"application/octet-stream\"。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Content Disposition
  • inline
  • attachment
设置 Content-Disposition HTTP 头,指示内容是打算内联显示还是应下载。\n 可能的值为 'inline' 或 'attachment'。如果未指定此属性,对象的 content-disposition 将设置为文件名。当选择 'attachment' 时,'; filename=' 加上对象键将自动追加形成最终值 'attachment; filename=\"filename.jpg\"' 。
Cache Control设置 Cache-Control HTTP 标头,指示关联对象的缓存指令。 多个指令以逗号分隔。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Object Tags Prefix指定将与传入 FlowFile 的属性进行扫描的前缀,匹配的属性名称和值将分别被视为传出 S3 对象的标签名称和标签值。例如:如果传入 FlowFile 携带属性 tagS3country、tagS3PII,则要指定的标签前缀为 'tagS3'
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
移除标签前缀false
  • true
  • false
如果设置为 'True',为 'Object Tags Prefix' 提供的值将从属性中移除,然后作为标签名称考虑。例如:如果传入的 FlowFile 携带属性 tagS3country、tagS3PII,且前缀设置为 'tagS3',则相应的标签值将为 'country' 和 'PII'
Communications Timeout30 secs
FullControl User List${s3.permissions.full.users}以逗号分隔的 Amazon 用户 ID 或电子邮件地址列表,指定谁应对对象拥有完全控制权
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Read Permission User List${s3.permissions.read.users}以逗号分隔的 Amazon 用户 ID 或电子邮件地址列表,指定谁应对对象具有读取访问权限
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Read ACL User List${s3.permissions.readacl.users}以逗号分隔的 Amazon 用户 ID 或电子邮件地址列表,指定谁应有权读取对象的访问控制列表
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Write ACL User List${s3.permissions.writeacl.users}以逗号分隔的 Amazon 用户 ID 或电子邮件地址列表,指定谁应有权更改对象的访问控制列表
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Canned ACL${s3.permissions.cannedacl}对象的 Amazon 预设 ACL,可选值之一:BucketOwnerFullControl、BucketOwnerRead、AuthenticatedRead、PublicReadWrite、PublicRead、Private;如果指定了任何其他 ACL/权限/所有者属性,则将被忽略
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
SSL Context Service控制器服务 API:
SSLContextProvider
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定可选的 SSL 上下文服务,如果提供,将用于创建连接
Endpoint Override URL用于替代 AWS 默认端点的端点 URL,包括协议、主机、端口和路径。AWS 库根据 AWS 区域选择端点 URL,但此属性会覆盖所选端点 URL,允许与其他 S3 兼容端点一起使用。
支持表达式语言:是(仅使用环境/系统变量求值)
Multipart Threshold5 GB指定从 PutS3Object API 切换到 PutS3MultipartUpload API 的文件大小阈值。大于此限制的 FlowFile 将使用有状态的多部分过程发送。有效范围为 50MB 到 5GB。
Multipart Part Size5 GB指定使用 PutS3Multipart Upload API 时使用的部分大小。FlowFile 将被拆分为此大小的块进行上传过程,但发送的最后一部分可以更小,因为它不会被填充。有效范围为 50MB 到 5GB。
Multipart Upload AgeOff Interval60 min指定评估 AWS S3 中现有多部分上传的过期时间间隔。当处理器触发时,如果已超过此间隔,将启动过期评估。
Multipart Upload Max Age Threshold7 days指定 AWS S3 中现有多部分上传的最大存在时间。当过期过程发生时,任何超过此阈值的上传将被中止。
Temporary Directory Multipart State${java.io.tmpdir}目录,在多部分上传中,处理器将在本地保存跟踪上传 ID 和已上传部分的状态,这两者都必须在完成上传时提供。
支持表达式语言:是(仅使用环境/系统变量求值)
Use Chunked Encodingtrue
  • true
  • false
启用/禁用上传请求的分块编码。 仅当您的端点不支持分块上传时,才将其设置为 false。
Use Path Style Accessfalse
  • true
  • false
通过将此行属性设置为 true 可以强制使用路径样式访问。如果您的端点不支持虚拟主机样式请求,仅支持路径样式请求,请将其设置为 true。
Proxy Configuration Service控制器服务 API:
ProxyConfigurationService
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定代理配置 Controller Service 来代理网络请求。

动态属性

动态属性允许用户自定义属性的名称与值。

名称值描述
要添加到 S3 对象的用户定义元数据字段的名称要添加到 S3 对象的用户定义元数据字段的值允许将用户定义的元数据作为键/值对添加到 S3 对象

关系 (Relationships)

名称描述自动终止
failureFlowFiles被路由到故障关系否
successFlowFiles被路由到成功关系否

读取的 FlowFile 属性

名称描述
filename使用 FlowFile 的文件名作为 S3 对象的文件名

写入的 FlowFile 属性

名称描述
s3.url可用于访问 S3 对象的 URL
s3.bucket对象放入 S3 中的 S3 存储桶
s3.key将对象放入 S3 的 S3 密钥
s3.contenttype放入 S3 中的 S3 对象的 S3 内容类型
s3.version放入 S3 的 S3 对象的版本
s3.exception处理器执行期间抛出的异常的类名
s3.additionalDetailsS3 提供了失败操作的详细信息
s3.statusCode失败操作的 HTTP 错误代码(如果有)
s3.errorCode失败操作的 S3 绰号
s3.errorMessage来自失败操作的 S3 异常消息
s3.etagS3对象的ETag
s3.contentdisposition放入S3的S3 Object的内容配置
s3.cachecontrolS3 对象的缓存控制标头
s3.uploadId用于将对象上传到S3的uploadId
s3.expirationTime如果 S3 对象已分配过期时间,将设置此属性,包含 UTC 时间自纪元以来的毫秒数
s3.expirationTimeRuleId如果 S3 对象已分配过期时间,将设置此属性,包含指示此对象过期时间的规则的 ID
s3.sseAlgorithm对象的服务器端加密算法
s3.usermetadataS3 对象的用户元数据的可读格式(如果有设置)
s3.encryptionStrategy加密策略的名称(如果有)

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

输入要求

该组件要求有传入连接。

详细说明

PutS3Object

分块上传详情

上传使用 PutS3Object 或 PutS3MultipartUpload 方法。PutS3Object 方法在 单次同步调用中发送文件,但有 5GB 大小限制。更大的文件使用 PutS3MultipartUpload 方法发送。分块上传过程会在每一步之后保存状态, 因此当 Processor 或集群停止并重启时,可以以最小的损失恢复大文件上传。 分块上传包含三个步骤:

  1. 初始化上传
  2. 上传各个分块
  3. 完成上传

对于分块上传,Processor 会在本地保存状态,跟踪 upload ID 和已上传的 分块,完成上传时必须提供这两项信息。AWS 库会根据 AWS 区域选择端点 URL,但可以通过 'Endpoint Override URL' 属性覆盖,以便使用其他兼容 S3 的端点。S3 API 规定 PutS3Object 上传的最大文件大小为 5GB,并要求 分块上传中除最后一个分块外每个分块至少 5MB。这些限制决定了 Multipart Upload Threshold 和 Part Size 属性的取值范围。

配置详情

Object Key

Object Key 属性值不应以 "/" 开头。

Credentials File

Credentials File 属性允许用户指定包含 AWS access key 和 secret key 的 文件路径。文件内容应采用以下格式:

    [default]
    accessKey=<access key>
    secretKey=<security key>

确保凭据文件可被 Lynxus 服务用户读取。

使用 Credentials File 属性时,确保 Access Key 和 Secret Key 属性没有 设值,两者的 Value 列都应显示 "No value set"。注意: 不要勾选 "Set empty string",因为空字符串被视为已设置的值。