标签: aws-java-sdk

AWS Java SDK(API网关):如何禁用API密钥

嗨,我试图以编程方式禁用API密钥,但找不到任何文档.

到目前为止,我找到了可能是我需要的2个类:

UpdateApiKeyRequest和DeleteApiKeyRequest.问题是我不知道如何处理这些问题.

请有人告诉我如何使用这些类来禁用或删除API密钥?

aws-java-sdk aws-api-gateway

3
推荐指数
1
解决办法
454
查看次数

AWS S3 Java SDK 上传失败并在 Groovy 中显示“连接池关闭”

我正在使用 Amazon Java SDK(在撰写本文时最新版本为 1.11.147)和 Groovy(Groovy 版本:2.4.11 JVM:1.8.0_112 供应商:Oracle Corporation OS:Mac OS X)将文件上传到 S3。使用 Amazon 文档中关于Transfer Manager 的说明,我能够将内容从一个存储桶复制到另一个存储桶。但是,上传总是失败。我尝试了以下3种方法。我让 Grapes 抓取了 httpclient 和 httpcore 的新版本,因为我在这个 Stack Overflow Post Apache PoolingHttpClientConnectionManager throwing非法状态异常中读到了什么

@Grapes([
  @Grab(group='com.amazonaws', module='aws-java-sdk', version='1.11.147'),
  // https://mvnrepository.com/artifact/org.apache.commons/commons-compress
  @Grab(group='org.apache.commons', module='commons-compress', version='1.13'),
  // https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient
  @Grab(group='org.apache.httpcomponents', module='httpclient', version='4.5.3'),
  // https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore
  @Grab(group='org.apache.httpcomponents', module='httpcore', version='4.4.6')
])

// creds is String saying which ~/.aws/credentials profile to use
def credentials = new ProfileCredentialsProvider(creds)

def s3client  = AmazonS3ClientBuilder.standard().
                withCredentials(credentials).
                withRegion(region).
                build()
def tx = TransferManagerBuilder.standard().
         withS3Client(s3client). …
Run Code Online (Sandbox Code Playgroud)

groovy amazon-s3 amazon-web-services aws-java-sdk

2
推荐指数
1
解决办法
4723
查看次数

java.lang.IllegalArgumentException:尝试获取 AWS ECR 身份验证令牌时主机名不能为空

我正在尝试使用 aws-java-sdk 版本 1.11.339 从 AWS 获取 ECR 授权令牌。我创建了一个类来这样做:

public class ECRTokenGetter {
    private static final Logger LOGGER = LoggerFactory.getLogger(ECRTokenGetter.class);
    private static final int SINGLE_ELEMENT_INDEX = 0;


    public static String getEcrAuthorisationToken(Credentials creds, String awsRegion, String registryId) {
        LOGGER.debug("Obtaining temporary authorisation credentials from AWS ECR");

        AmazonECR ecrClient = AmazonECRClientBuilder.standard()
                .withRegion(awsRegion)
                .withCredentials(new AWSStaticCredentialsProvider(new BasicSessionCredentials(
                        creds.getAccessKeyId(),
                        creds.getSecretAccessKey(),
                        creds.getSessionToken())))
                .build();
        return ecrClient.getAuthorizationToken(new GetAuthorizationTokenRequest()
                        .withRegistryIds(registryId))
                .getAuthorizationData().get(SINGLE_ELEMENT_INDEX)
                .getAuthorizationToken();
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,在执行代码时,我收到以下异常:

Exception in thread "main" java.lang.IllegalArgumentException: hostname cannot be null
    at com.amazonaws.util.AwsHostNameUtils.parseRegion(AwsHostNameUtils.java:79)
    at com.amazonaws.util.AwsHostNameUtils.parseRegionName(AwsHostNameUtils.java:59)
    at com.amazonaws.auth.internal.AWS4SignerRequestParams.resolveRegion(AWS4SignerRequestParams.java:121) …
Run Code Online (Sandbox Code Playgroud)

java aws-java-sdk

2
推荐指数
2
解决办法
7034
查看次数

使用适用于 Java 的 AWS 开发工具包生成预签名 URL

我按照https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURLJavaSDK.html中的示例创建预签名 s3 url (v4),当我尝试访问已签名的 s3 url (v4) 时,出现“访问被拒绝”错误网址

<Error>
   <Code>AccessDenied</Code>
   <Message>Access Denied</Message>
   <RequestId>0FB02ECDDF5EAC7B</RequestId>
   <HostId>vA+mmsv9PCunNe5uPkPrmpqqN3vFctQ13c9dIRlKWTYsT0zNA1V9g+4YS+lCItrBlyQtdHpyspg=</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

以下是代码片段

public class GeneratePresignedURL {

    public static void main(String[] args) throws IOException {
        String clientRegion = "us-east-1";
        String bucketName = "com-example-bucket";
        String objectKey = "path/to/file.img"; // No leading `/`
        // https://com-example-bucket.s3.amazonaws.com/path/to/file.img

        try { 
            AWSCredentialsProvider awsCredentialsProvider = new DefaultAWSCredentialsProviderChain();

            // Assuming that us-east-1 defaults to v4, couldn't find a way to set it explicitly
            AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withRegion(clientRegion)
                    .withCredentials(awsCredentialsProvider)
                    .build();

            // Set …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services pre-signed-url aws-sdk aws-java-sdk

2
推荐指数
1
解决办法
2万
查看次数

适用于Java的AWS开发工具包是否在安全通道中与S3服务器通信?

我想认为这是个不错的选择,但我想先提出询问。因此,您知道我从S3存储桶下载文件或向S3存储桶上传文件时,适用于Java的AWS开发工具包是否始终使用安全通道吗?还是在编写代码时或在S3存储桶本身中应该配置的东西?

java security amazon-s3 aws-java-sdk

1
推荐指数
1
解决办法
834
查看次数

如何在不下载的情况下获取 S3 上 csv 文件的行数?

我们正在将文件上传到 Amazon S3,我想添加一个功能来显示文件中的行数。如何在不下载的情况下获取 S3 上 csv 文件的行数?

java amazon-s3 amazon-web-services aws-java-sdk

1
推荐指数
1
解决办法
1705
查看次数

如何仅旋转IAM用户访问密钥而不旋转其秘密密钥

我想旋转AWS IAM用户访问密钥,仅旋转访问密钥,而不旋转秘密访问密钥,当我尝试旋转密钥时,我能够旋转整个密钥,而不是单独访问密钥。

amazon-web-services amazon-iam aws-sdk aws-java-sdk

1
推荐指数
1
解决办法
28
查看次数

Localstack - 通过 java aws sdk 访问 SNS:NoSuchFieldError:ENDPOINT_OVERRIDDEN

我正在玩一个在 docker 上运行的 localstack 实例。我尝试访问 sns 服务,但在执行“listTopics()”或“createTopic()”等方法时收到错误我还没有在 Google 上找到任何帮助,所以有人知道这里出了什么问题吗?

错误:

Caused by: java.lang.NoSuchFieldError: ENDPOINT_OVERRIDDEN
    at com.amazonaws.services.sns.AmazonSNSClient.executeListTopics(AmazonSNSClient.java:1830) ~[aws-java-sdk-sns-1.11.875.jar:na]
    at com.amazonaws.services.sns.AmazonSNSClient.listTopics(AmazonSNSClient.java:1812) ~[aws-java-sdk-sns-1.11.875.jar:na]
    at com.amazonaws.services.sns.AmazonSNSClient.listTopics(AmazonSNSClient.java:1853) ~[aws-java-sdk-sns-1.11.875.jar:na]
    at com.example.dockerspringboot.DockerSpringBootApplication.getSnsClient(DockerSpringBootApplication.java:62) ~[classes/:na]
    at com.example.dockerspringboot.DockerSpringBootApplication$$EnhancerBySpringCGLIB$$a65fee3d.CGLIB$getSnsClient$2(<generated>) ~[classes/:na]
    at com.example.dockerspringboot.DockerSpringBootApplication$$EnhancerBySpringCGLIB$$a65fee3d$$FastClassBySpringCGLIB$$99ad7dfd.invoke(<generated>) ~[classes/:na]
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    at com.example.dockerspringboot.DockerSpringBootApplication$$EnhancerBySpringCGLIB$$a65fee3d.getSnsClient(<generated>) ~[classes/:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.2.9.RELEASE.jar:5.2.9.RELEASE]
    ... 98 common frames omitted
Run Code Online (Sandbox Code Playgroud)

我尝试通过 java aws sdk 访问 localstack sns 服务:

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-sns</artifactId>
    <version>1.11.875</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我的应用程序中抛出错误的代码如下所示:

private String serviceEndpoint = …
Run Code Online (Sandbox Code Playgroud)

java aws-java-sdk localstack

1
推荐指数
1
解决办法
3800
查看次数