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)

常数: CONTENT_DISPOSITION

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_OBJECT_NAME

用于当前操作的 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 值:

  • copyObject
  • listObjects
  • deleteObject
  • deleteObjects
  • deleteBucket
  • listBuckets
  • getObject
  • getPartialObject
 

MinioOperations

CamelMinioServerSideEncryption (common)

恒定: SERVER_SIDE_ENCRYPTION

producer :在使用 Minio-managed 密钥加密对象时设置服务器端加密算法。例如,使用 AES256。consumer :使用 Minio-managed 密钥加密对象时的服务器端加密算法。

 

字符串

CamelMinioExpirationTime (common)

恒定: EXPIRATION_TIME

过期时间。

 

字符串

CamelMinioReplicationStatus (common)

常数: REPLICATION_STATUS

复制状态。

 

字符串

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 的字节数。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.