问题标签 [aws-sdk-java-2.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 删除文件夹及其内容 AWS S3 java
是否可以使用 java sdk for aws 通过单个 api 请求删除文件夹(在 S3 存储桶中)及其所有内容。对于浏览器控制台,我们可以通过单击删除文件夹及其内容,我希望使用 API 也可以使用相同的行为。
java - 如何在 aws s3 sdk java 2.0 中启用强制全局存储桶访问?
这是 java 3 sdk 版本 1 文档的链接。版本 2.0 是否有类似的东西,或者他们删除了这样的选项?
amazon-iam - 将设备对象附加到连接客户端后连接到 AWS IoT 时出现授权错误
我正在尝试作为 Java AWS IoT 设备 SDK 一部分的 ShadowSample 示例 - https://github.com/aws/aws-iot-device-sdk-java/blob/master/aws-iot-device-sdk- java-samples/src/main/java/com/amazonaws/services/iot/client/sample/shadow/ShadowSample.java
我能够成功运行它并且它工作正常。但是,当我将以下策略附加到证书(以及证书依次到设备)时,它可以正常工作 -
我想要一个通用且严格的政策(尤其是对于发布和接收操作),而不是授予所有资源,即“*”资源。所以,我用下面的表格更新了政策,但都不起作用——
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Subscribe",
"iot:Connect"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete",
]
},
{
"Effect": "Allow",
"Action": [
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/accepted",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/rejected",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/delta",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/documents",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get/accepted",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get/rejected",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/accepted",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/rejected",
]
}
]
}
和
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Subscribe",
"iot:Connect"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/update/*",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/get/*",
"arn:aws:iot:us-west-2:64867635xxxx:topic/$aws/things/${iot:Connection.Thing.ThingName}/shadow/delete/*",
]
}
]
}
注意 - 出于安全目的,我已将 xxxx 放在帐号中。在实际政策中,我有正确的价值观。
我什至将主题中的 * 替换为 #,但同样的结果仍在继续。结果是——
在 AWS CloudWatch 上,在 AWS IoT 特定日志下,我发现 -
支持发布和接收操作的通用和严格的政策应该是什么?
请注意,当我尝试 pub-sub 示例(也在同一个 SDK 中提供)时,我尝试过的上述策略运行良好。这些策略不适用于影子示例,因为有一个附加步骤将设备附加到连接客户端。
另一个小查询:我将如何以通用方式最小化或限制订阅操作的主题订阅,因为变量替换(如事物类型、事物名称)不适用于订阅(但适用于接收和发布)?
amazon-web-services - AWS Java SDK:来自 EC2 实例配置文件的 AssumeRole?
我有一个在 EC2 实例上运行的应用程序,该实例具有一个 IAM 配置文件,该配置文件在它所在的账户上描述了 EC2。它还具有另一个帐户的 AssumeRole(该角色也授予 EC2 描述)。以下是我在主账户中的 IAM 角色:
以下是辅助账户中的 IAM 角色:
基本上我需要做的是从两个账户中获取 EC2 实例。当前的SDK可以做到这一点吗?目前我只从主账户获取实例。
amazon-dynamodb - DynamoDB 跨区域复制 AWS Java SDK
我需要为我的 DynamoDb 表配置跨区域复制。为了手动尝试,我只使用了 AWS Web 控制台,在其中我为 Global Table 配置了适当的区域,以便通过 DynamoDb 流进行复制,这非常简单。有人可以建议我如何使用 Java SDK 做到这一点吗?
java - AWS Lambda JavaCompiler 实例
在 AWS Lambda Java 8 函数中,是否可以获得 的实例 SystemJavaCompiler
?这是一个片段:
我正在尝试在 Lambda 中动态编译源代码并ToolProvider.getSystemJavaCompiler()
抛出NullPointerException
. 这在当地很有效。我希望避免部署 EC2 实例以从 Lambda 的资源节省中受益。
amazon-sqs - 从 SQS SendMessage 获取 SignatureDoesNotMatch 错误
我正在为 SQS SendMessage 操作构建自己的 REST 调用。SendMessage 的所有参数都在请求正文中。(QueueUrl、Action 和 MessageBody)。
我创建了自己的签名计算代码(主要从 AWS SDK Java 复制)。
现在,当我的 MessageBody="HelloWorld" ,它工作正常。这意味着我的签名计算和凭据是正确的。
但是,当我插入空格 MessageBody="Hello World" 时,我收到了来自 SQS 的 403 SignatureDoesNotMatch 错误。我还尝试将 "Hello%20World" 作为 MessageBody ,但这也返回 403 错误。
还尝试了“Hello+World”。但是得到了同样的错误。
我发现 aws sdk 在计算有效负载的哈希之前将空格转换为“+”。
我试过 MessageBody="Hello.World" 并且效果很好。
消息正文中的空格有什么问题吗?
我将 Host 和 x-amz-date 作为我请求中的唯一标头发送。
来自 SQS 的错误响应表明负载的哈希是实际和预期的规范请求中唯一不同的东西。
java - 如何使用指标过滤器DescribeMetricFiltersResult过滤aws日志使用java
我正在尝试根据组名获取 aws 指标过滤器日志,但我不断收到此错误
未能满足约束:成员必须满足正则表达式模式:[.-_/#A-Za-z0-9]+
代码片段:
amazon-s3 - S3文件下载工作
要使用 java SDK 从 S3 下载文件,我们需要执行以下操作 -> 注意 - 多部分下载已关闭。
当我们调用 getObject 时,SDK 会对该对象进行 GET 调用。此调用仅返回响应的标头。
当我们真正开始从 s3ObjectInputStream 读取时,我们得到了响应正文。但这都是一个 REST 调用。
所以,我很困惑为什么调用首先只返回标题。S3 是如何知道何时开始发送响应正文的?
我们只进行了一次调用,那么我们如何通知 S3 我们现在已经开始从 s3ObjectInputStream 读取。在我们从流中读取之前,实际文件存储在哪里?
java - 在 Web 浏览器中查看来自 aws s3 的文件内容
我使用 java spring-boot 将图像存储在 s3 存储桶中,并将文件路径存储在数据库中。我提供了客户端的路径,以便他们可以查看文件而不是下载它。我能够为 s3 对象生成预签名的 URL。所以,如果我给客户他们可以查看文件内容但是如果这个人与其他人共享,他们也可以查看。我想将此 URL 设置为受密码保护。有什么办法吗?或者任何其他方式让客户可以查看文件?