Amazon web services 如何将文件上载到aws3 bucket中的单独文件夹

Amazon web services 如何将文件上载到aws3 bucket中的单独文件夹,amazon-web-services,spring-boot,Amazon Web Services,Spring Boot,我想将公共文件上载到公用文件夹,将私人文件上载到aws3 bucket中创建的私人文件夹 我应该在代码中做哪些更改 @覆盖 public void uploadFile(字符串keyName、字符串uploadFilePath){ 试一试{ 文件=新文件(上传文件路径); s3client.putObject(新的PutObjectRequest(bucketName+“/public”、keyName、file)); logger.info(“=========================

我想将公共文件上载到公用文件夹,将私人文件上载到aws3 bucket中创建的私人文件夹

我应该在代码中做哪些更改

@覆盖
public void uploadFile(字符串keyName、字符串uploadFilePath){
试一试{
文件=新文件(上传文件路径);
s3client.putObject(新的PutObjectRequest(bucketName+“/public”、keyName、file));
logger.info(“===============================上传文件-完成!”;
System.out.println(“url为******”+s3client.getUrl(bucketName+“/public”,keyName).toString());
url=s3client.getUrl(bucketName+“/public”,keyName).toString();
连接cn=新连接();
cn.db();
}捕获(AmazonServiceException ase){
info(“从PUT请求中捕获到AmazonServiceException,拒绝原因:”);
logger.info(“错误消息:+ase.getMessage());
logger.info(“HTTP状态代码:+ase.getStatusCode());
logger.info(“AWS错误代码:+ase.getErrorCode());
logger.info(“错误类型:+ase.getErrorType());
info(“请求ID:+ase.getRequestId());
}捕获(AmazonClientException ace){
info(“捕获了AmazonClientException:”);
logger.info(“错误消息:+ace.getMessage());
}
}

桶、键的值构造不正确:

bucketName + "/public", keyName
bucketName, "public/" + keyName
铲斗值的正确构造,键:

bucketName + "/public", keyName
bucketName, "public/" + keyName

请注意,对象键不应包含前导的
/
,因此,如果您的
键名现在有一个,则这是错误的,应予以修复。。。对象键没有前导的
/
,提供前导的将导致问题。

默认情况下,Amazon S3存储桶中的所有对象都是私有的

如果您希望将特定文件夹公开,则可以使用存储桶策略,例如:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"PublicFolder",
      "Effect":"Allow",
      "Principal": "*",
      "Action":["s3:GetObject"],
      "Resource":["arn:aws:s3:::examplebucket/public/*"]
    }
  ]
}

你能澄清你的问题吗?上传文件时遇到问题吗?或者您正在询问如何配置AmazonS3,使一个文件夹成为公共文件夹,而另一个文件夹不是公共文件夹?“将公用文件上载到公用文件夹”是什么意思?是什么将其标识为应放置在“公用文件夹”中的“公用文件”?请编辑您的问题以提供更多详细信息。@John public files在这个意义上说..我想上传公用文件夹中可公开访问的文件