从s3存储桶中删除源文件:s3-inbound-streaming-channel-adapter

时间:2018-11-07 06:44:00

标签: spring spring-boot spring-integration spring-integration-aws

在成功将源文件传输到目标目录后,不会从s3存储桶中删除源文件。     步骤1.使用入站流通道适配器将源文件从S3流到本地目录。(工作正常)     第2步:要在成功传输后删除源文件(不起作用) 配置代码如下

#include <stdio.h>

int main(int argc, char **argv)
{
    int i;
    char f[128];
    unsigned char ch;
    if (argc != 2) {
        printf("use : ./a.out str");
        return -1;
    }
    for (i = 0; i != sizeof(f); ++i)
        f[i] = 0;
    for (i = 0; argv[1][i] != '\0'; ++i) {
        ch = argv[1][i];
        if (f[ch] == 0) {
            putchar(ch);
            f[ch] = 1;
        }
    }
    return 0;
}

此致

1 个答案:

答案 0 :(得分:0)

由于您在那里使用了<integration:stream-transformer>,因此我认为没有理由依赖<int-aws:s3-inbound-streaming-channel-adapter>。使用第一个,您只需消除最后一个的流式传输目的。

我建议您看看常规的<int-aws:s3-inbound-channel-adapter>,它已经有一个delete-remote-files="true"选项。

另一方面,您仍然可以使用目前的功能来执行此操作,但是您需要使用<integration:outbound-channel-adapter expression="@s3SessionFactory.getSession().remove(headers[file_remoteDirectory] + '/' + headers[file_remoteFile])">之类的东西。

这些标头由AbstractRemoteFileStreamingMessageSource填充。