PutS3Object Processor
描述
将 FlowFile 的内容作为 S3 对象写入 Amazon S3 存储桶。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Bucket | ${s3.bucket} | 与之交互的 S3 存储桶 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Object Key | ${filename} | 要使用的 S3 对象密钥。 这类似于传统文件系统的文件名。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Region | us-west-2 |
| 服务所在的 AWS 区域 |
| Custom Region | | 自定义区域,例如 AWS 兼容服务提供商的区域 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| AWS Credentials Provider Service | | 控制器服务 API:AwsCredentialsProviderServicecn.org.acal.lynxus-lynxus-aws-service-api-nar-2.11.8 | 用于获取AWS凭证提供者的Controller Service |
| Resource Transfer Source | FLOWFILE_CONTENT |
| 待传输内容的来源 |
| File Resource Service | | 控制器服务 API:FileResourceServicecn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 文件资源服务提供对要传输的本地资源的访问 |
| Storage Class | STANDARD |
| |
| Encryption Service | | 控制器服务 API:AmazonS3EncryptionServicecn.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 | |
| 设置 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',为 'Object Tags Prefix' 提供的值将从属性中移除,然后作为标签名称考虑。例如:如果传入的 FlowFile 携带属性 tagS3country、tagS3PII,且前缀设置为 'tagS3',则相应的标签值将为 'country' 和 'PII' |
| Communications Timeout | 30 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:SSLContextProvidercn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 指定可选的 SSL 上下文服务,如果提供,将用于创建连接 |
| Endpoint Override URL | | 用于替代 AWS 默认端点的端点 URL,包括协议、主机、端口和路径。AWS 库根据 AWS 区域选择端点 URL,但此属性会覆盖所选端点 URL,允许与其他 S3 兼容端点一起使用。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Multipart Threshold | 5 GB | 指定从 PutS3Object API 切换到 PutS3MultipartUpload API 的文件大小阈值。大于此限制的 FlowFile 将使用有状态的多部分过程发送。有效范围为 50MB 到 5GB。 | |
| Multipart Part Size | 5 GB | 指定使用 PutS3Multipart Upload API 时使用的部分大小。FlowFile 将被拆分为此大小的块进行上传过程,但发送的最后一部分可以更小,因为它不会被填充。有效范围为 50MB 到 5GB。 | |
| Multipart Upload AgeOff Interval | 60 min | 指定评估 AWS S3 中现有多部分上传的过期时间间隔。当处理器触发时,如果已超过此间隔,将启动过期评估。 | |
| Multipart Upload Max Age Threshold | 7 days | 指定 AWS S3 中现有多部分上传的最大存在时间。当过期过程发生时,任何超过此阈值的上传将被中止。 | |
| Temporary Directory Multipart State | ${java.io.tmpdir} | 目录,在多部分上传中,处理器将在本地保存跟踪上传 ID 和已上传部分的状态,这两者都必须在完成上传时提供。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Use Chunked Encoding | true |
| 启用/禁用上传请求的分块编码。 仅当您的端点不支持分块上传时,才将其设置为 false。 |
| Use Path Style Access | false |
| 通过将此行属性设置为 true 可以强制使用路径样式访问。如果您的端点不支持虚拟主机样式请求,仅支持路径样式请求,请将其设置为 true。 |
| Proxy Configuration Service | | 控制器服务 API:ProxyConfigurationServicecn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 指定代理配置 Controller Service 来代理网络请求。 |
动态属性
| 名称 | 值 | 描述 |
|---|---|---|
| 要添加到 S3 对象的用户定义元数据字段的名称 | 要添加到 S3 对象的用户定义元数据字段的值 | 允许将用户定义的元数据作为键/值对添加到 S3 对象 |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
failure | FlowFiles被路由到故障关系 | 否 |
success | FlowFiles被路由到成功关系 | 否 |
读取的 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.additionalDetails | S3 提供了失败操作的详细信息 |
s3.statusCode | 失败操作的 HTTP 错误代码(如果有) |
s3.errorCode | 失败操作的 S3 绰号 |
s3.errorMessage | 来自失败操作的 S3 异常消息 |
s3.etag | S3对象的ETag |
s3.contentdisposition | 放入S3的S3 Object的内容配置 |
s3.cachecontrol | S3 对象的缓存控制标头 |
s3.uploadId | 用于将对象上传到S3的uploadId |
s3.expirationTime | 如果 S3 对象已分配过期时间,将设置此属性,包含 UTC 时间自纪元以来的毫秒数 |
s3.expirationTimeRuleId | 如果 S3 对象已分配过期时间,将设置此属性,包含指示此对象过期时间的规则的 ID |
s3.sseAlgorithm | 对象的服务器端加密算法 |
s3.usermetadata | S3 对象的用户元数据的可读格式(如果有设置) |
s3.encryptionStrategy | 加密策略的名称(如果有) |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件要求有传入连接。
另请参阅
详细说明
PutS3Object
分块上传详情
上传使用 PutS3Object 或 PutS3MultipartUpload 方法。PutS3Object 方法在 单次同步调用中发送文件,但有 5GB 大小限制。更大的文件使用 PutS3MultipartUpload 方法发送。分块上传过程会在每一步之后保存状态, 因此当 Processor 或集群停止并重启时,可以以最小的损失恢复大文件上传。 分块上传包含三个步骤:
- 初始化上传
- 上传各个分块
- 完成上传
对于分块上传,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",因为空字符串被视为已设置的值。