草庐IT

S3Client

全部标签

amazon-web-services - S3 : User cannot access object in his own s3 bucket if created by another user

外部用户可以访问我们的s3存储桶,在我们的存储桶策略中使用这些操作:"Action":["s3:GetObjectAcl","s3:GetObject","s3:PutObjectAcl","s3:ListMultipartUploadParts","s3:PutObject"]该用户生成了temporarycredentials,然后用于将文件上传到我们的存储桶中。现在,我无法访问该文件。在s3UI中,如果我尝试下载该文件,我会收到403。如果我尝试更改该对象的权限,我会看到消息:“抱歉!您没有查看此存储桶的权限。”如果外部用户在使用临时凭证上传文件时设置了适当的header(x-a

java - AWS 从 S3 下载对象时出错, "profile file cannot be null"

我已经看过this,但没有答案来解释我的问题。我首先使用提供的示例here(GetObject类),它立即在我的桌面上运行。但是,我的friend无法在他的机器上运行它,也无法在我们的EC2实例上运行。有人提到必须指定凭据文件,这是有道理的,但我从来没有这样做过,而且我很确定默认权限设置为允许访问此存储桶。这是堆栈跟踪:Exceptioninthread"main"java.lang.IllegalArgumentException:profilefilecannotbenullatcom.amazonaws.util.ValidationUtils.assertNotNull(Val

java - 如何将 S3 对象写入文件?

将S3对象(我有key)写入文件的最快方法是什么?我正在使用Java。 最佳答案 自Java7(2011年7月发布)以来,有更好的方法:Files.copy()来自java.util.nio.file的实用程序.Copiesallbytesfromaninputstreamtoafile.所以你两者都不需要anexternallibrary也不会自己滚动bytearrayloops.以下两个示例均使用来自S3Object.getObjectContent()的输入流。InputStreamin=s3Client.getObject(

java - 您如何使用适用于 Java 的 Google Translate v2 API Client Library 发出翻译请求?

没有关于如何使用适用于Java的Google翻译API客户端库的示例。在此页面中,Google建议搜索其API示例,但没有一个适用于GoogleTranslateAPI的示例:https://github.com/google/google-api-java-client-samples由于我没有找到GoogleTranslateAPI的任何示例,所以我不知道如何使用他们的官方Java库。我想提出一个简单的请求,将一段文本(例如,HelloWorld从英文翻译成西类牙文)翻译成Google的官方图书馆:https://developers.google.com/api-client-l

java - 如何在集成测试中模拟 Amazon S3

我正在尝试建立我的应用程序的“行走骨架”,它将使用S3进行持久化。我想使用一个假的S3服务,这样每个开发人员的桌面都可以随意读/写。我以为mocks3将是完美的,因为我可以在我的jUnit测试中启动一个jetty服务器。问题是mocks3不允许任何写入。据我所知,甚至没有设置它。那么其他人是怎么做到的呢? 最佳答案 还有一个Findifys3mock正是为此目的而编写的工具。它在本地文件系统之上模拟AWSS3API的基本部分:importio.findify.s3mock.S3MockS3Mockapi=S3Mock.create(

java - 为什么上传到 S3 的文件的内容类型为 application/octet-stream,除非我将文件命名为 .html?

即使我将内容类型设置为text/html,它在S3上最终会变成application/octet-stream。ByteArrayInputStreamcontentsAsStream=newByteArrayInputStream(contentAsBytes);ObjectMetadatamd=newObjectMetadata();md.setContentLength(contentAsBytes.length);md.setContentType("text/html");s3.putObject(newPutObjectRequest(ARTIST_BUCKET_NAME,

java - Jersey Client/JAX-RS 和可选(非默认)@QueryParam(客户端)

我有一个RESTfulAPI,它的文档说某个查询参数是可选的,并且不提供默认参数。因此,我可以提供该值,也可以不将其作为参数发送到GET请求中。例子:queryA是必需的queryB是可选的(没有它也可以发送GET)这应该有效:http://www.example.com/service/endpoint?queryA=foo&queryB=bar这也应该有效:http://www.example.com/service/endpoint?queryA=foo如何为Jersey-Proxy创建客户端界面那个可以这样??我没有要连接的服务器端代码,所以我通过Jersey-Proxy使用o

java - 使用预先签名的URL将文件放入S3

我整夜都在使用AmazonS3预签名URL来尝试放置文件。我用Java代码生成了预签名的URL。AWSCredentialscredentials=newBasicAWSCredentials(accessKey,secretKey);client=newAmazonS3Client(credentials);GeneratePresignedUrlRequestrequest=newGeneratePresignedUrlRequest(bucketName,"myfilename",HttpMethod.PUT);request.setExpiration(newDate(Syst

java - 使用预签名 URL 使用 curl 上传到 s3(得到 403)

我正在使用curl调用JavaReSTAPI来检索URL。然后,Java使用我的S3凭据为S3上传生成一个预签名的URL,并在ReST回复中返回它。Curl获取URL并将其用于上传到S3,但S3返回403“我们计算的请求签名与您提供的签名不匹配。请检查您的key和签名方法。”这是我用来生成预签名URL的代码:publicclassS3Util{staticfinalAmazonS3s3=newAmazonS3Client(newAWSCredentials(){@OverridepublicStringgetAWSAccessKeyId(){return"XXXXXXX";}@Over

Elasticsearch RestHighLevelClient 已标记为被弃用 它的替代方案 Elasticsearch Java API Client 的基础教程及迁移方案

在Elasticsearch7.15版本之后,Elasticsearch官方将它的高级客户端RestHighLevelClient标记为弃用状态。同时推出了全新的JavaAPI客户端ElasticsearchJavaAPIClient,该客户端也将在Elasticsearch8.0及以后版本中成为官方推荐使用的客户端。ElasticsearchJavaAPIClient支持除VectortilesearchAPI和FindstructureAPI之外的所有ElasticsearchAPI。且支持所有API数据类型,并且不再有原始JsonValue属性。它是针对Elasticsearch8.0及