如何在使用出站网关上传文件之前检查 aws s3 存储桶是否可用

2023-11-29

在 Spring Boot 应用程序中使用 aws s3 出站适配器,尝试上传 s3 存储桶中的文件。想在上传文件之前检查存储桶是否可用。如果存储桶不可用,则需要抛出错误。

对此提出建议。

<int-aws:s3-outbound-gateway id="FileChannelS3"
        request-channel="filesOutS3CChainChannel"
        reply-channel="filesArcChannel"
        transfer-manager="transferManager"
        bucket-expression="headers.TARGET_BUCKET"
                command="UPLOAD">
        <int-aws:request-handler-advice-chain>
            <ref bean="retryAdvice" />          
        </int-aws:request-handler-advice-chain>
    </int-aws:s3-outbound-gateway>

您可以配置一个S3RemoteFileTemplate豆并使用它的exists()API 中的<filter>:

<bean id="s3RemoteFileTemplate" class="org.springframework.integration.aws.support.S3RemoteFileTemplate">
    <constructor-arg ref="s3SessionFactory"/>
</bean>

<int:filter expression="@s3RemoteFileTemplate.exists(headers.TARGET_BUCKET)" throw-exception-on-rejection="true"/>

UPDATE

面临以下异常java.lang.IllegalStateException: 'path' must in pattern [BUCKET/KEY].

抱歉,错过了您需要检查是否存在的事实bucket,而不是里面的物体。

为此,您需要直接使用 Amazon API:

<int:filter expression="@amazonS3.doesBucketExistV2(headers.TARGET_BUCKET)" throw-exception-on-rejection="true"/>

其中一个amazonS3是一个豆子com.amazonaws.services.s3.AmazonS3 client.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在使用出站网关上传文件之前检查 aws s3 存储桶是否可用 的相关文章

随机推荐

  • 如何用bash生成0到3之间的随机十进制数?

    我想生成一个从 0 到 3 的随机十进制数 结果应该如下所示 0 2 1 5 2 9 我知道的唯一命令是 echo 0 RANDOM 500 500 但这总是会产生0 xxx 我怎么做 Bash 不支持非整数 您的代码片段刚刚生成一个 50
  • 在 C# 中使用鼠标在运行时调整按钮大小

    我正在使用以下代码在运行时通过鼠标创建和移动按钮 我还想用鼠标调整它们的大小 此代码由 KekuSemau 提供 非常感谢 KekuSemau 的贡献 它帮助了我 private Point Origin Cursor private Po
  • MailTo 在 Android WebView 中不起作用

    我正在开发一个网站的 Android Webview 我有包括mailto用于联系和发送电子邮件给朋友 网站中的代码片段 联系方式 a href email protected a 发送电子邮件给朋友 a href title Email
  • 如何在我的 Android 应用程序中使用 ScreenShotClient

    我正在开发一个应用程序 可以帮助用户捕获 Android 屏幕截图 Android 4 x 我知道 android ICS 上的帧缓冲区已损坏 我听说我们可以使用 ScreenShotClient 来执行此操作 如下所示 Screensho
  • 带下拉列表的 Laravel 5.2 过滤器

    我想做下拉列表过滤 我有一个网页 显示了一些带有标题和类别的帖子 该页面有一个下拉菜单nav blade php 我从类别表动态生成下拉列表 但是 当我选择下拉菜单中的一项 例如类别名称 时 我希望页面仅显示该类别的帖子 我还创建了类别和帖
  • 简单的 istream_iterator 问题

    我是 C 新手 如果这是一个愚蠢的问题 我很抱歉 我似乎无法弄清楚为什么这不起作用 它复制到第一个向量中 并且似乎跳过第二个复制调用 include
  • 在通过 $sce.trustAsHtml 添加的字符串中绑定 Angular js 中的数据

    我正在为遗留系统实现一个网络界面 因此来自服务器的数据是固定的 该服务器数据指定要向用户显示的各种控件 例如组合框 按钮等 我已经解析了服务器数据并通过 sce trustAsHtml 添加了控件的 HTML 问题是控件没有绑定到模型 如果
  • 如何动态获取文本框中datagridview列的总和

    我想获得 datagridview 列的总和并将其显示在文本框中 每次输入后 总和应动态更改 为此 我使用文本框的 textChanged 事件 但是当输入内容时 它不会显示任何结果 我想在文本框中动态获取结果 我想避免使用求和按钮 下面是
  • 导出android库项目以供重用,无需源代码

    出于安全原因 我需要导出没有源代码的库项目 不幸的是 库项目中生成的 jar 文件不包含资源 我不能指望这个图书馆的用户能够处理图书馆所需的任何资源 已经有类似的帖子了 但我还没有看到解决方案 以下食谱曾经有效 尽管我最近没有尝试过 步骤
  • Java 进程 - 无法解压缩 zip 文件

    我正在尝试解压缩一些 zip 文件 它大约有 65 兆 代码片段如下 这个方法实际上解压一个文件 public synchronized void execute Path zipFile final ProcessBuilder buil
  • 动态创建匿名类型? [复制]

    这个问题在这里已经有答案了 我想创建一个可以动态设置属性名称的匿名类型 它不必是匿名类型 我想要实现的就是动态设置任何对象属性名称 它可以是 ExpandoObject 但字典对我不起作用 您有什么建议 Only ExpandoObject
  • Python 3.2.2 open('C:\file.txt') 不起作用

    诚然 我是一个新手 但是 我认为 我按照教程所说的进行了操作 对于我安装的版本 但我无法让 Python 读取文件 其他人遇到过长文件名或路径的问题 但我让我的文件名或路径简短而甜蜜 所以我想 文件本身在一行中包含一个单词 print st
  • XSLT 中的词频计数器

    我正在尝试用 XSLT 制作一个词频计数器 我希望它使用停用词 我开始了迈克尔 凯的书 但我很难让停用词发挥作用 此代码适用于任何源 XML 文件
  • 为空数据框创建异常

    我正在接受用户输入来获取特定股票的历史数据 我想处理 2 个可能的错误 第一个是由于错误输入而生成的错误 并且代码生成错误 第二个是如果输入错误但代码被执行并且我得到一个空数据框 while True try us input Enter
  • 获取对 std::thread::_M_start_thread 的未定义引用

    我正在构建一个使用我从源代码构建的第三方库 Box2D MT 的应用程序 链接时 我收到此未定义的引用错误 b2Threading cpp text ZNSt6threadC2IM12b2ThreadPoolFviEJPS1 iEEEOT
  • 滚动 PCA 并绘制主成分的比例方差

    我使用以下代码来执行 PCA PCA lt prcomp Ret1 center TRUE scale TRUE summary PCA 我得到以下结果 Importance of components PC1 PC2 PC3 PC4 St
  • 替换函数内的异步加载

    我正在使用 Javascript 进行替换 我做了这样的事情 var replacedText originalText replace regex function value i return value some additional
  • 如何为具有 SRC、OBJ 和 BIN 子目录的 C 项目创建 Makefile?

    几个月前 我想出了以下通用的Makefile对于学校作业 Generic Makefile Author email protected Date 2010 11 05 Changelog 0 01 first version projec
  • Thymeleaf 嵌套迭代触发 org.thymeleaf.exceptions.TemplateInputException

    我正在尝试迭代对象列表并生成一个div class card deck every 4对象和嵌套div class card 对于每个对象 这是生成异常的代码line 234 UPDATE Note line 234中提到html并拥有由于
  • 如何在使用出站网关上传文件之前检查 aws s3 存储桶是否可用

    在 Spring Boot 应用程序中使用 aws s3 出站适配器 尝试上传 s3 存储桶中的文件 想在上传文件之前检查存储桶是否可用 如果存储桶不可用 则需要抛出错误 对此提出建议