使用Java无法将文件上载到Amazon S3

时间:2018-03-30 15:37:12

标签: java amazon-s3

我是新手,最近开始致力于亚马逊s3服务。

我已经在我的示例程序中创建了一个java maven项目并使用了Java 1.8和aws-java-sdk 1.11.6版本

以下是相同的源代码,并且成功执行。

它返回版本ID作为程序的输出。

    System.out.println("Started the program to create the bucket....");
    BasicAWSCredentials awsCreds = new BasicAWSCredentials(CloudMigrationConstants.AWS_ACCOUNT_KEY, CloudMigrationConstants.AWS_ACCOUNT_SECRET_KEY);

    AmazonS3Client s3Client = new AmazonS3Client(awsCreds);
    String uploadFileName="G:\\Ebooks\\chap1.doc";
    String bucketName="jinesh1522421795620";
    String keyName="test/";

    System.out.println("Uploading a new object to S3 from a file\n");
    File file = new File(uploadFileName);
    PutObjectResult putObjectResult=s3Client.putObject(new PutObjectRequest(
                                         bucketName, keyName, file));

System.out.println("Version id :" + putObjectResult.getVersionId());

System.out.println("Finished the program to create the bucket....");

但是当我尝试使用s3browser或amazon console查看文件时,我没有看到文件列在存储桶中。

您能否告诉我My Java程序有什么问题?

1 个答案:

答案 0 :(得分:0)

我想我误解了这个概念。我们必须在指定密钥时指定要存储的文件的名称。在上面的程序中,我错过了指定文件的名称以及文件夹的名称,因此我无法看到该文件。

File file = new File(uploadFileName);
PutObjectResult putObjectResult=s3Client.putObject(new PutObjectRequest(
                                         bucketName, keyName+"/chap1.doc", file));