98.8. 消息标头
Minio 组件支持 21 个消息标头,如下为/are:
Name | 描述 | 默认值 | 类型 |
---|---|---|---|
CamelMinioBucketName (common) constant: BUCKET_NAME | producer:此对象将存储或用于当前操作的存储桶名称。consumer :包含此对象的存储桶的名称。 | 字符串 | |
CamelMinioDestinationBucketName (producer) constant: DESTINATION_BUCKET_NAME | 用于当前操作的存储桶目标名称。 | 字符串 | |
CamelMinioContentControl (common) constant: CACHE_CONTROL | producer:此对象的内容控制。consumer:可选的 Cache-Control HTTP 标头,允许用户在 HTTP 请求/回复链中指定缓存行为。 | 字符串 | |
CamelMinioContentDisposition (common) | producer:此对象的内容分布。consumer:可选的 Content-Disposition HTTP 标头,它指定要保存的对象的建议文件名等。 | 字符串 | |
CamelMinioContentEncoding (common) 常量: CONTENT_ENCODING | producer:此对象的内容编码。consumer :可选的 Content-Encoding HTTP 标头指定将什么内容编码应用到对象,必须应用哪些解码机制才能获取 Content-Type 字段引用的 media-type。 | 字符串 | |
CamelMinioContentLength (common) 常数: CONTENT_LENGTH | producer :此对象的内容长度。consumer:Content-Length HTTP 标头表示关联对象的大小(以字节为单位)。 | Long | |
CamelMinioContentMD5 (common) constant: CONTENT_MD5 | producer :此对象的 md5 checksum。consumer :根据 RFC 1864,使用 base64 编码相关对象的 128 位 MD5 摘要(content - 不包含标头)。此数据用作消息完整性检查,以验证 Minio 收到的数据是否与调用者发送的数据相同。 | 字符串 | |
CamelMinioContentType (common) 常数: CONTENT_TYPE | producer :此对象的内容类型。consumer :Content-Type HTTP 标头,它表示存储在关联对象中的内容类型。此标头的值是标准 MIME 类型。 | 字符串 | |
CamelMinioETag (common) 常量: E_TAG | producer:新上传对象的 ETag 值。consumer :根据 RFC 1864,对相关对象的十六进制编码的 128 位 MD5 摘要。此数据用作完整性检查,以验证调用者收到的数据是否与 Minio 发送的数据相同。 | 字符串 | |
CamelMinioObjectName (common) 常量: OBJECT_NAME | producer:此对象将存储或用于当前操作的密钥。consumer :存储此对象的密钥。 | 字符串 | |
CamelMinioDestinationObjectName (producer) | 用于当前操作的 Destination 键。 | 字符串 | |
CamelMinioLastModified (common) 常数: LAST_MODIFIED | producer :此对象的最后修改的时间戳。consumer : Last-Modified 标头的值,指示 Minio 最后记录对关联对象的修改的日期和时间。 | Date | |
CamelMinioStorageClass (producer) 常数: STORAGE_CLASS | 此对象的存储类。 | 字符串 | |
CamelMinioVersionId (common) 常数: VERSION_ID | producer :要存储或从当前操作返回的对象的版本 Id。consumer :关联的 Minio 对象的版本 ID (如果可用)。只有在对象上传到启用了对象版本控制的 Minio 存储桶时,才会将版本 ID 分配给对象。 | 字符串 | |
CamelMinioCannedAcl (producer) 常量: CANNED_ACL | 将应用到对象的 canned acl。有关允许的值,请参阅 com.amazonaws.services.s3.model.CannedAccessControlList。 | 字符串 | |
CamelMinioOperation (producer) 常量: MINIO_OPERATION | 要执行的操作。 Enum 值:
| MinioOperations | |
CamelMinioServerSideEncryption (common) | producer :在使用 Minio-managed 密钥加密对象时设置服务器端加密算法。例如,使用 AES256。consumer :使用 Minio-managed 密钥加密对象时的服务器端加密算法。 | 字符串 | |
CamelMinioExpirationTime (common) 恒定: EXPIRATION_TIME | 过期时间。 | 字符串 | |
CamelMinioReplicationStatus (common) | 复制状态。 | 字符串 | |
CamelMinioOffset (producer) 常数: OFFSET | 偏移量。 | 字符串 | |
CamelMinioLength (producer) 常数: LENGTH | 长度。 | 字符串 |
98.8.1. minio Producer 操作
camel-Minio 组件在生成者端提供以下操作:
- copyObject
- deleteObject
- deleteObjects
- listBuckets
- deleteBucket
- listObjects
- GetObject (这将返回 MinioObject 实例)
- getObjectRange (这将返回 MinioObject 实例)
98.8.2. 高级 Minio 配置
如果您的 Camel 应用程序在防火墙后面运行,或者您需要对 MinioClient
实例配置拥有更多控制,您可以创建自己的实例并在 Camel minio 组件配置中引用它:
from("minio://MyBucket?minioClient=#client&delay=5000&maxMessagesPerPoll=5") .to("mock:result");
98.8.3. minio Producer 操作示例
- CopyObject:此操作将对象从一个存储桶复制到不同的存储桶
from("direct:start").process(new Processor() { @Override public void process(Exchange exchange) throws Exception { exchange.getIn().setHeader(MinioConstants.DESTINATION_BUCKET_NAME, "camelDestinationBucket"); exchange.getIn().setHeader(MinioConstants.OBJECT_NAME, "camelKey"); exchange.getIn().setHeader(MinioConstants.DESTINATION_OBJECT_NAME, "camelDestinationKey"); } }) .to("minio://mycamelbucket?minioClient=#minioClient&operation=copyObject") .to("mock:result");
此操作会将带有标头 camelDestinationKey 中的名称的对象复制到 Bucket mycamelbucket 中的 camelDestinationBucket 存储桶。
- DeleteObject:此操作从存储桶中删除对象
from("direct:start").process(new Processor() { @Override public void process(Exchange exchange) throws Exception { exchange.getIn().setHeader(MinioConstants.OBJECT_NAME, "camelKey"); } }) .to("minio://mycamelbucket?minioClient=#minioClient&operation=deleteObject") .to("mock:result");
此操作将从 bucket mycamelbucket 中删除对象 camelKey。
- ListBuckets:此操作列出了此区域中此帐户的存储桶
from("direct:start") .to("minio://mycamelbucket?minioClient=#minioClient&operation=listBuckets") .to("mock:result");
此操作将列出此帐户的存储桶
- DeleteBucket:此操作删除指定为 URI 参数或标头的存储桶
from("direct:start") .to("minio://mycamelbucket?minioClient=#minioClient&operation=deleteBucket") .to("mock:result");
此操作将删除存储桶 mycamelbucket
- ListObjects :此操作列表在特定存储桶中的对象
from("direct:start") .to("minio://mycamelbucket?minioClient=#minioClient&operation=listObjects") .to("mock:result");
此操作将列出 mycamelbucket bucket 中的对象
- GetObject:此操作获取特定存储桶中的单个对象
from("direct:start").process(new Processor() { @Override public void process(Exchange exchange) throws Exception { exchange.getIn().setHeader(MinioConstants.OBJECT_NAME, "camelKey"); } }) .to("minio://mycamelbucket?minioClient=#minioClient&operation=getObject") .to("mock:result");
此操作将返回与 mycamelbucket bucket 中 camelKey 对象相关的 MinioObject 实例。
- GetObjectRange:此操作获得特定存储桶中的单个对象范围
from("direct:start").process(new Processor() { @Override public void process(Exchange exchange) throws Exception { exchange.getIn().setHeader(MinioConstants.OBJECT_NAME, "camelKey"); exchange.getIn().setHeader(MinioConstants.OFFSET, "0"); exchange.getIn().setHeader(MinioConstants.LENGTH, "9"); } }) .to("minio://mycamelbucket?minioClient=#minioClient&operation=getObjectRange") .to("mock:result");
此操作将返回与 mycamelbucket bucket 中 camelKey 对象相关的 MinioObject 实例,其中包含从 0 到 9 的字节数。