6.10. MoveAfterRead consumer 选项
除了 deleteAfterRead 外,还添加了另一个选项 moveAfterRead。启用此选项后,消耗的对象将移到目标 destinationBucket 中,而不是只被删除。这将需要指定 destinationBucket 选项。例如:
from("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&moveAfterRead=true&destinationBucket=myothercamelbucket") .to("mock:result");
在这种情况下,消耗的对象将移到 myothercamelbucket bucket,并从原始存储桶中删除(因为 deleteAfterRead 设置为 true )。
您还可以在将文件移动到其他存储桶时使用密钥前缀/suffix。这些选项是 destinationBucketPrefix 和 destinationBucketSuffix。
使用以上示例,您可以执行以下操作:
from("aws2-s3://mycamelbucket?amazonS3Client=#amazonS3Client&moveAfterRead=true&destinationBucket=myothercamelbucket&destinationBucketPrefix=RAW(pre-)&destinationBucketSuffix=RAW(-suff)") .to("mock:result");
在这种情况下,消耗的对象将移到 myothercamelbucket bucket,并从原始存储桶中删除(因为 deleteAfterRead 设置为 true )。
因此,如果文件名是 test,在 myothercamelbucket 中,您应该会看到一个名为 pre-test-suff 的文件。