java - 在AWS的S3中上传文件

标签 java amazon-s3

我正在 s3 中上传文件,编写以下代码:

String filePath=KeyProvider.localFolerPath + KeyProvider.suffix +KeyProvider.FileNameToUpload; 

// upload file to folder and set it to public
String fileName = folderName + KeyProvider.suffix +KeyProvider.remoteFileName ;
s3client.putObject(
            new PutObjectRequest(bucketName, fileName, new File(filePath))
                    .withCannedAcl(CannedAccessControlList.PublicReadWrite));`

它抛出类似的错误

com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied

请建议我在单独的常量文件中提供存储桶名称 key 和 secret 时出现的错误在哪里。

谢谢..

最佳答案

你检查过亚马逊的文件吗?

而且,要小心。您需要为 s3 客户端设置 access_key 和 access_secret 字符串。

示例

import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.AmazonServiceException;

// "credentialsProvider" will be created by some classes for example "AWSStaticCredentialsProvider"
//
// BasicAWSCredentials cred = new BasicAWSCredentials("xxxxx", "yyyyy");
// AWSStaticCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(cred);
AmazonS3 s3 = AmazonS3ClientBuilder.standard().withCredentials(credentialsProvider).build();

try {
    s3.putObject(bucket_name, key_name, file_path);
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}

编辑

S3 策略可以根据凭据或 IP 地址处理拒绝/允许访问。您配置了这样的策略吗?

关于java - 在AWS的S3中上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46921173/

相关文章:

java - 将默认浏览器作为字符串返回的方法?

java - 有没有办法获取调用我的静态方法作为实例方法的对象?

java - 哪种websocket服务器实现可以与rabbitmq结合使用?

amazon-s3 - S3/Cloudfront 不发送 image/jpeg 内容类型

amazon-web-services - S3 减速 : Please reduce your request rate exception

ruby-on-rails - Rails 3,回形针 + S3 - 如何存储实例并保护访问

java - 如何在底部导航 fragment (或抽屉导航)之间传递数据?

java - 使用 Companies House XML 网关搜索公司名称可用性

java - 你如何将图像从 android 相机保存到 Amazon S3?

amazon-web-services - AWS Glue 未检测到 CSV 中的 header