首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使输入了错误的访问密钥或密钥,也从s3获取preSignedUrl

即使输入了错误的访问密钥或密钥,也从s3获取preSignedUrl
EN

Stack Overflow用户
提问于 2020-08-21 20:24:58
回答 2查看 357关注 0票数 1

我正在生成一个preSignedUrl,然后通过该url上传文件。问题是,即使我输入了错误的访问密钥或密钥,我也会得到preSignedUrl,但如果我尝试使用该url上传,我会得到400错误。

代码语言:javascript
运行
复制
  <?xml version="1.0" encoding="UTF-8"?>
    <Error>
        <Code>AuthorizationQueryParametersError</Code>
        <Message>Query-string authentication version 4 requires the X-Amz-Algorithm, X-Amz-Credential, X-Amz-Signature, X-Amz-Date, X-Amz-SignedHeaders, and X-Amz-Expires parameters.</Message>
        <RequestId>{requestId}</RequestId>
        <HostId>{hostId}</HostId>
    </Error>

有没有办法在生成preSignedUrl时出现错误,这样我就不必尝试上传文件了。

代码语言:javascript
运行
复制
    AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                    .withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials("accessKey", "secretKey")))
                    .withRegion(clientRegion)
                    .build();
    
    GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName, objectKey)
     .withMethod(HttpMethod.PUT)
     .withExpiration(expiration);

    URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);
EN

Stack Overflow用户

回答已采纳

发布于 2020-08-21 21:45:45

生成预签名的URL不需要API调用;它可以由框架使用指定的访问密钥和密钥生成。

当接收到请求时,生成的URL将由S3进行验证,并且显然只有在使用有效的凭证生成它时才会被接受。

底线:为了验证您的凭据,您需要发出一个API请求,该请求实际执行对AWS的调用。这几乎可以是s3Client上的任何其他方法。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63522895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档