如果查询中没有这样的键,如何关闭AWS连接

2024-02-06

我正在使用 AWS java SDK 将文件上传到 AWS 管理控制台的存储桶上。但是,如果当我第一次尝试访问该文件时在线上没有这样的文件,我的代码将捕获异常(NoSuchKey)。然后我想关闭连接。问题是我没有任何引用来关闭该连接,因为异常(原始引用将为空)。这是我的代码:

    S3Object object = null;
    GetObjectRequest req = new GetObjectRequest(bucketName, fileName);

    try{
        logconfig();

        object = s3Client.getObject(req);
                  ...
    catch(AmazonServiceException e){
        if(e.getErrorCode().equals("NoSuchKey"))

我试图使用“object”作为引用来关闭 eclipse 和 Aws 之间的连接,但显然发生异常时“object”为 null。 谁能告诉我该怎么做? 此外,由于我无法关闭连接,我的控制台每 60 秒就会出现此警告:

8351167 [java-sdk-http-connection-reaper] DEBUG org.apache.http.impl.conn.PoolingClientConnectionManager  - Closing connections idle longer than 60 SECONDS

如果你使用Java 1.7,你可以使用尝试资源 http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html堵塞。当物体离开方块时会自动关闭。

GetObjectRequest req = new GetObjectRequest(bucketName, fileName);
try(S3Object object = s3Client.getObject(req)) {
    ...
} catch(AmazonServiceException e) {
    if(e.getErrorCode().equals("NoSuchKey"));
}

如果您使用Java 1.6或更早版本,则需要在finally块中执行

S3Object object = null;
GetObjectRequest req = new GetObjectRequest(bucketName, fileName);
try {
    object = s3Client.getObject(req))
    ...
} catch(AmazonServiceException e) {
    if(e.getErrorCode().equals("NoSuchKey"));
} finally {
    if (object != null) {
        object.close();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果查询中没有这样的键,如何关闭AWS连接 的相关文章

  • 如何使用 Java 创建多个模式连接?

    我必须使用两个数据库 DB2 Oracle 我在 DB2 数据库中有一个名为NAVID 我想使用 Java 为 Oracle 中的所有表创建相同的架构 public class automateExport static String va
  • Java中定义类型后同时初始化多个变量?

    这里需要一些语法方面的帮助 我正在尝试在定义类型后重新初始化多个变量 例如 int bonus sales x y 50 这工作正常 但是我想稍后在程序中将不同的值放入其中一些变量中 但我收到语法错误 bonus 25 x 38 sales
  • 如何在Mac上使用eclipse安装jetty

    我是一个新手 jetty 和 RESTful API 我想使用 Jetty 创建 REST 服务 并希望将嵌入式 jetty 与 eclipse 一起使用 任何人都可以建议我在 Mac OS 中使用 Eclipse 安装 Jetty Jet
  • 在 Android 中绘制一条带有弯曲边缘的线

    I am using canvas drawLine to draw some line in android but the lines are too sharp but i need a curved edges 这里的 1 是我所拥
  • java中队列的实现

    在 Java 中实现队列是一个非常常见的面试问题 我在网上冲浪 看到了许多实现 他们做了一些奇特的事情 比如实现队列接口和编写自己的addLast and removeFirst 方法 我的问题是我不能使用LinkedList 类并使用其预
  • org.postgresql.util.PSQLException:协议错误。会话设置失败

    我知道这些类型的问题已经存在 但提供的解决方案对我不起作用 在我的应用程序中 没有版本不匹配的黑白驱动程序和 PostgreSQL 服务器 我还没有找到任何其他解决方案 我正在使用 PostgreSQL 服务器 9 4 和 postgres
  • 空 EntityManager/EJB 注入 MDB

    我有一个消息驱动 bean MDB 部署到 WebLogic 12 1 3 我尝试使用 PersistenceContext 注释将实体管理器注入 MDB 但实体管理器为空 我还尝试注入一个简单的无状态会话 bean 它也是空的 但是 Me
  • 代码编译期间遇到警告消息“使用或覆盖已弃用的 API”

    我编译了我的程序并收到以下错误 我该如何解决呢 Note ClientThreadClients java uses or overrides a deprecated API Note Recompile with Xlint depre
  • 通过 JNI 从 Applet 调用 DLL

    我有一个 概念验证 的作品 它跨越了一些不熟悉的领域 我的任务是将 EFTPOS 机器连接到在内联网浏览器中作为小程序运行的应用程序 我暂时忽略了 EFTPOS dll 并用我选择的语言 Delphi 创建了一个简单的 JNI 修饰的 DL
  • 带有面板的 Java Swing JToolbar:外观和感觉

    我有一个JToolbar其中包含多个JPanels 需要 因为我希望每个都有特定的边界 不幸的是 外观管理器无法识别JPanels属于工具栏和JButtons因此 渲染器与普通按钮一样 即没有工具栏上的特殊鼠标悬停效果 更换JPanels
  • Java 中 static 关键字如何工作?

    我正在阅读Java教程 http docs oracle com javase tutorial index html从一开始我就有一个问题static字段或变量上的关键字 作为Java said here http docs oracle
  • 尝试在空对象引用上调用虚拟方法“java.lang.String org.jsoup.nodes.Element.ownText()”

    我正在使用下面的代码来获取版本名称 from 应用商店通过使用 jsoup 我正在获取详细信息 但它引发了一些异常 我的代码是 public class ForceUpdateAsync extends AsyncTask
  • XSLT:我们可以使用abs值吗?

    我想知道在 XSLT 中我们是否可以使用 math abs 我在某处看到过这个 但它不起作用 我有类似的东西
  • Netty中连接关闭后重新连接的最佳方法是什么

    简单场景 扩展 SimpleChannelUpstreamHandler 的较低级别的类 A 此类是发送消息和接收响应的主力 系统其他部分可以使用顶级类 B 来发送和接收消息 可以模拟同步和异步 此类创建 ClientBootstrap 设
  • 删除 ArrayList 对象问题

    我在处理作业时遇到从 ArrayList 中删除对象的问题 如果我使用 正常 for 循环 它的工作原理如下 public void returnBook String isbn for int i 0 i lt booksBorrowed
  • 如何在 Java 中创建要打印到 JFrame 的 JLabels 数组

    我正在尝试制作一系列标签 每个标签都有一个来自函数的不同值 我不知道要使用的标签的确切数量 我的意思是可以打印任意数量的值 请帮我做这件事 很简单 只需一个方法返回一个数组或一些 JLabels 集合 并将它们全部添加到您的 JCompon
  • 设计抽象类时是否应该考虑序列化问题?

    一般来说这个问题来自Eclipse建议在抽象类上添加串行版本UID 由于该类是抽象类 因此该类的实例永远不会存在 因此它们永远不会被序列化 只有派生类才会被序列化 所以我的问题是放置一个安全 SuppressWarnings serial
  • Java中的媒体播放器库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在评估用于在 Java 中播放音频 视频的库 它不需要 100 Java Java 与本机库的绑定
  • SWT - 与操作系统无关的获取等宽字体的方法

    SWT 有没有一种方法可以简单地获得跨各种操作系统的等宽字体 例如 这适用于 Linux 但不适用于 Windows Font mono new Font parent getDisplay Mono 10 SWT NONE 或者我是否需要
  • C/C++ 通过 Android NDK 在 JNI 中看不到 Java 方法

    我正在尝试从使用 NDK 构建的 C 类文件调用 Java 方法 它不断抛出常见的 未找到非静态方法 错误并导致整个 Android 应用程序崩溃 下面的代码片段 有些东西可能不需要 但我按原样保留它们 因为焦点 问题在于refreshJN

随机推荐

  • 传递格式化的 NSDate

    我传递给实例方法的格式化日期未保存 打印正确的日期 有人可以帮忙吗 调用方法代码片段 NSDateFormatter dateFormatter NSDateFormatter alloc init autorelease dateForm
  • 卡在 PHP 查询上

    我创建了一个页面 允许用户更改密码和电子邮件 所有这些都有效 但由于某种原因 当我只想更改我的电子邮件时 我也得到了该字段当前密码不正确 电子邮件本身在数据库中发生了变化 但这显示了出来 我显然已经验证了它的显示 但我不确定如何编写一个新查
  • 如何让它更短(Pythonic)?

    我必须检查很多世界是否在字符串中 代码如下所示 if string 1 in var string or string 2 in var string or string 3 in var string or string n in var
  • 具有本机扩展的 Ruby gem 无法在 AWS Lambda 上运行

    我有一个 ruby 脚本 正在尝试在 AWS Lambda 上运行 我如何让它使用带有本机扩展的 Ruby gem 我已经通过安装了我的 Ruby gemsbundle install deployment并将它们包含在我的部署中 当我在
  • C# 更改系统区域设置

    需要将系统区域设置更改为不同的国家 地区 我尝试过 SystemParametersInfo GetKeyboardLayout 但没有帮助 如何更改控制台应用程序的 C 系统区域设置 e g Thread CurrentThread Cu
  • 更改大表中的mysql字段名称

    我有一个包含 2100 万行的表 我必须更改其中一个行名称 当我尝试使用查询 alter table company change id new id int 11 时 查询永远不会结束 有没有简单的方法来更改大mysql表字段名称 首先
  • Excel:查找数组中的最后一个值

    我有一个数据集 gt A b c d AA BB gt 1 2 3 4 gt apple apple apple gt orange pear pear apple pear gt grapefruit grape grape grape
  • Eclipse 在 Ubuntu 14.04 中无法启动

    我尝试在 Ubuntu 14 04 中启动 Eclipse 时遇到问题 启动图片弹出 然后闪烁 变成白色 直到王国来临之前什么也没有发生 我尝试过 Luna Kepler 和 3 8 来自 Ubuntu 存储库 EE 和 SE 版本 两者相
  • Service Worker 可以缓存 POST 请求吗?

    我尝试在 fetch 事件的服务工作人员中缓存 POST 请求 I used cache put event request response 但返回的承诺被拒绝TypeError Invalid request method POST 当
  • 如何在打印语句中使用零填充标志精确打印两个位置

    如果想使用零垫进行此方法打印 你该怎么做 int month day public void printNumeric System out printf month day n i would like the month if it i
  • Tkinter ttk 查看自定义主题设置

    使用后ttk Style theme create name settings 可以看到该主题的设置吗 我问的原因是当我创建一个新主题并添加ttk Notebook root 对于我的代码 选项卡有圆角 这是我不想要的 这是一个例子 imp
  • 通过引用传递给构造函数

    我决定看看为成员分配引用是否会使成员成为引用 我编写了以下代码片段来测试它 有一个简单的类Wrapper与std string作为成员变量 我采取采取const string 在构造函数中并将其分配给公共成员变量 后来在main 方法我修改
  • Sublime Text 3 Windows 使用 Alt 选择列?

    Shift right click feels unintuitive to me How can I tell ST3 to allow Alt drag to do column selection like in many other
  • 为什么要重写 DTO 中的 toString 方法

    我看到大多数时候在DTO对象中 toString 方法实际上被重写了 例如 public class Person implements Serializable private String firstName private Strin
  • 使用 wc_price 过滤器挂钩向产品价格添加其他货币

    根据我原来帖子的答案使用时遇到格式不正确的数值wc priceWooCommerce 挂钩 https stackoverflow com questions 66084833 a non well formed numeric value
  • 学C要多长时间? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Fallocate 和 ftruncate 之间有什么区别

    根据我的测试 他们都可以改变文件大小 为什么他们都可以将文件变大或变短 Fallocate 和 ftruncate 和有什么区别 ftruncate是一个简单的 单一用途的函数 根据 POSIX 文档 http pubs opengroup
  • 汇编程序中的寻址

    有件事我无法消化 我正在学习一些汇编程序 现在我正在学习寻址章节 我理解用于解除引用的括号的概念 但不知怎的 当我看到它的用法时 我就是无法理解它的要点 更准确地说 我的困惑是从这里开始的 mov al L1 在这里 我假设 L1 作为示例
  • 由于事务之间的读/写依赖关系,无法序列化访问

    我最终成功地重现了序列化问题这个问题 https stackoverflow com q 21706858 274677到 SSCCE 最短的独立完整示例 我正在使用jdbc and java标签 尽管我相信这不是 Java 或 JDBC
  • 如果查询中没有这样的键,如何关闭AWS连接

    我正在使用 AWS java SDK 将文件上传到 AWS 管理控制台的存储桶上 但是 如果当我第一次尝试访问该文件时在线上没有这样的文件 我的代码将捕获异常 NoSuchKey 然后我想关闭连接 问题是我没有任何引用来关闭该连接 因为异常