【发布时间】:2020-01-20 00:20:28
【问题描述】:
我正在尝试将我的对象上传到 s3 存储桶,但客户端构建器没有回复任何响应。
CompletableFuture.runAsync(()->{
try {
//runs up to here
System.out.println("start connection");
AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(AppConstants.AWS_REGION).build();
System.out.println("connected");
//nothing executed below!
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(mimeType);
metadata.addUserMetadata("x-amz-meta-title", "someTitle");
metadata.setContentLength(bytes.length);
PutObjectRequest request = new PutObjectRequest(bucket, fileName, bais , metadata);
request.setCannedAcl(CannedAccessControlList.BucketOwnerFullControl);
s3.putObject(request);
}catch (AmazonServiceException e) {
//no errors logged
e.printStackTrace();
}catch (SdkClientException e) {
// no errors logged
e.printStackTrace();
}
catch(Exception e) {
//no errors logged
e.printStackTrace();
}
});
服务器正在记录以下内容:
(ForkJoinPool.commonPool-worker-5) start connection
然后什么都没有发生
PS:我正在使用的库:
aws-java-sdk-core-1.11.482
aws-java-sdk-s3-1.11.482
我的凭证文件也在 ~/.aws/credentials 中
【问题讨论】:
-
调试应用程序并在它“什么都不做”时暂停它,然后找到你的主线程并检查堆栈跟踪以查看它卡在哪里。
-
@CausingUnderflowsEverywhere 好的,找到了,缺少 jar 文件(joda-time)。
-
好的,很高兴你修好了。也许你可以发布一个答案来回答你自己的问题,或者觉得最好关闭这个问题。
-
你能写一个答案让我接受吗?
-
您能否编辑问题以提供更有用的调试信息,这些信息可以暗示您缺少 jar?是否出现无法加载类的错误?
标签: java amazon-s3 aws-java-sdk