Tag: amazon s3

使用Java API的S3 / AWS的SSL问题:“证书中的主机名不匹配”

亚马逊在1.3.21版本的AWS Java SDK中“升级”了SSL安全性。 在使用Amazon的AWS Java API时,这会破坏访问其名称中具有句点的任何S3存储桶。 我使用的是版本1.3.21.1,目前是2012年10月5日。 我在下面的回答中提供了一些解决方案,但我正在寻找针对此问题的其他解决方法。 如果您收到此错误,您将在例外/日志中看到类似以下消息的内容。 在此示例中,存储桶名称为foo.example.com 。 INFO: Unable to execute HTTP request: hostname in certificate didn’t match: != OR OR at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:220) at org.apache.http.conn.ssl.StrictHostnameVerifier.verify(StrictHostnameVerifier.java:61) at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:149) at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:130) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:390) 您可以在AWS S3论坛上查看此问题的文档: https://forums.aws.amazon.com/thread.jspa?messageID=387508&#387508 亚马逊对此问题的回应如下。 对于具有此命名模式的存储桶,我们应该能够通过使用旧的路径样式方法来解决此问题(而不是较新的虚拟主机样式寻址)。 我们将开始修复并确保我们的内部集成测试具有包含句点的存储桶名称的测试用例。 任何变通方法或其他解决方案? 感谢您的任何反馈。

AWS Java SDK – 无法通过区域提供程序链查找区域

我已经完成了题为“以编程方式设置AWS区域1”的问题,但它没有提供我需要的所有答案。 Q1:我收到了SDKClientException-Unable to find a region via the region provider chain 。 我究竟做错了什么? 还是我错过了一个错字。 public class CreateS3Bucket { public static void main(String[] args) throws IOException { BasicAWSCredentials creds = new BasicAWSCredentials(“aws-access-key”, “aws-secret-key”); AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(creds)).build(); Region region = Region.getRegion(Regions.US_EAST_1); s3Client.setRegion(region); try { String bucketName = “testBucket” + UUID.randomUUID(); s3Client.createBucket(bucketName); System.out.println(“Bucket Created Successfully.”); } […]

AmazonS3,如何检查上传是否成功?

我用Java编写了一个简短的测试代码来上传在内存中生成的PDF文件。 在这个测试代码中,我只使用一个虚拟字节数组,但在实际使用中,我将在该字节数组中生成一个生成的PDF(最多2-3页)。 一切正常:文件上传并设置权限。 然而,因为我已经返回PutObjectResult,我想知道我应该如何检查它。 或者是否足以查找AmazonClientException和AmazonServiceExceptionexception? 换句话说: 如何检查上传是否成功并且没有损坏我的数据? String bucket = “mybucket.example.com”; String fileName = “2011/test/test.pdf”; AmazonS3 client = new AmazonS3Client(new BasicAWSCredentials( “accessKey”, “secretKey”)); byte[] contents = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; InputStream stream = new ByteArrayInputStream(contents); ObjectMetadata meta = new ObjectMetadata(); meta.setContentLength(contents.length); meta.setContentType(“application/pdf”); PutObjectResult res […]

amazon s3只为一个存储桶返回1000个条目,而为另一个存储桶返回所有条目(使用java sdk)?

我使用下面提到的代码来获取s3存储桶中所有文件名的列表。 s3中有两个桶。 对于下面的一个桶代码返回所有文件名(超过1000),但相同的代码仅返回另一个桶的1000个文件名。 我只是不知道发生了什么。 为什么相同的代码运行一个桶而不是其他? 我的桶也有层次结构文件夹/ filename.jpg。 ObjectListing objects = s3.listObjects(“bucket.new.test”); do { for (S3ObjectSummary objectSummary : objects.getObjectSummaries()) { String key = objectSummary.getKey(); System.out.println(key); } objects = s3.listNextBatchOfObjects(objects); } while (objects.isTruncated());

如何更新现有Amazon S3文件的元数据?

我需要更新所有AmazonS3的Cloud Files中的缓存控制头。 但是,我无法弄清楚如何使用jclouds API。 我正在使用apache jclouds插件。 我得到了两个相关的答案: jclouds:如何更新现有blob的元数据? 使用AWS Java SDK为现有S3对象设置Expires标头 第一个答案是建议使用SwiftKey Api类,这在grails的jcloud插件中是不可用的。 第二个答案是使用AWS java sdk已经有一个grails包装插件https://grails.org/plugin/aws-sdk但它不支持元数据更新。

如何通过Pause / Resume支持上传到S3?

我想知道如何通过“暂停和恢复”支持将文件上传到Amazon S3? (通过网络浏览器)。 是否有可用的示例Web应用程序? 任何编程语言/框架都可以。 提前致谢。 解 我实现了以下应用程序。 Github Link 。 它基于Condominios的示例应用程序和gem。 所有功劳都归功于https://github.com/cotag/ ,这是一个伟大的gem和工作。 特征: – Pause / Resume support ~ 5MB chunks – Large File Upload – Progress Bar – No Java Applet / No Flash – Registration system via devise

AWS S3 Java SDK – 拒绝访问

我正在尝试使用AWS SDK访问存储桶及其所有对象但在运行代码时我收到错误,因为线程“main”中的exceptioncom.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: X), S3 Extended Request ID: Y= 请建议,我缺少的地方以及为什么访问被拒绝错误正在发生,尽管我已经获得了以下所有权限: s3:GetObject s3:GetObjectVersion s3:GetObjectAcl s3:GetBucketAcl s3:GetBucketCORS s3:GetBucketLocation s3:GetBucketLogging s3:ListBucket s3:ListBucketVersions s3:ListBucketMultipartUploads s3:GetObjectTorrent s3:GetObjectVersionAcl 代码如下: AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey); ClientConfiguration clientConfig = new ClientConfiguration(); clientConfig.setProtocol(Protocol.HTTP); AmazonS3 conn = new AmazonS3Client(credentials, clientConfig); conn.setEndpoint(bucketName); Bucket […]

maven s3旅行车提供商

如何使用wagon s3提供商进行部署? 我发现了几个插件,其中大部分是不完整的,其中一些没有保留。 官方maven SVN存储库中还有一个沙箱插件,但我正在计算如何使用它。 任何提示?

com.amazonaws.services.s3.model.AmazonS3Exception:Forbidden(Service:Amazon S3; Status Code:403; Error Code:403 Forbidden; Request ID:XXXXXXXX)

从几天开始,当我尝试将文件推送到S3Bucket时,我收到此exception。 Ealier的一切似乎都有效,我相信我的代码没有任何代码变化。 com.amazonaws.services.s3.model.AmazonS3Exception: Forbidden (Service: Amazon S3; Status Code: 403; Error Code: 403 Forbidden; Request ID: XXXXXXXXXXXX), S3 Extended Request ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1077) at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:725) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3699) at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:999) at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:977) …. …. 我遇到了许多与com.amazonaws.services.s3.model.AmazonS3exception相关的Q:禁止跟随这些 我已经在我的服务器上安装了NTP来解决任何时间相关的问题。 我还将“AmazonS3Client”对象的endPointUrl添加到我觉得可以解决我的问题的代码中。 我还可以尝试解决这个问题 我正在使用aws-java-sdk:1.9.10将文件推送到S3 Bucket。

amazon s3上传文件超时

我有一个800KB的JPG文件。 我尝试上传到S3并继续获得超时错误。 你能想出什么问题吗? 800KB对于上传而言相当小。 错误消息:未在超时期限内读取或写入与服务器的套接字连接。 空闲连接将被关闭。 HTTP状态代码:400 AWS错误代码:RequestTimeout Long contentLength = null; System.out.println(“Uploading a new object to S3 from a file\n”); try { byte[] contentBytes = IOUtils.toByteArray(is); contentLength = Long.valueOf(contentBytes.length); } catch (IOException e) { System.err.printf(“Failed while reading bytes from %s”, e.getMessage()); } ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentLength(contentLength); s3.putObject(new PutObjectRequest(bucketName, key, is, metadata));