Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 上载到AWS S3 bucket时更改文件名_Java_Amazon Web Services_File Upload_Amazon S3_Aws Sdk - Fatal编程技术网

Java 上载到AWS S3 bucket时更改文件名

Java 上载到AWS S3 bucket时更改文件名,java,amazon-web-services,file-upload,amazon-s3,aws-sdk,Java,Amazon Web Services,File Upload,Amazon S3,Aws Sdk,我正在尝试将csv文件上载到S3 bucket。代码运行成功,但当我检查bucket时,将上载名为Access Key的文件。我必须手动重命名该文件以检查其内容 是否有一种方法可以仅通过编程重命名文件,或者在上载时文件名不会自动更改 请检查以下代码: public class AwsFileUploader { private static String bucketName = "mybucket"; private static String accessKey = "my-access-

我正在尝试将csv文件上载到S3 bucket。代码运行成功,但当我检查bucket时,将上载名为
Access Key
的文件。我必须手动重命名该文件以检查其内容

是否有一种方法可以仅通过编程重命名文件,或者在上载时文件名不会自动更改

请检查以下代码:

public class AwsFileUploader {

private static String bucketName = "mybucket";
private static String accessKey = "my-access-key";
private static String secretKey = "my-secret-key";
private static String uploadFileName = "CompressionScore/compression_score_09-04-2015.csv";

public static void main(String[] args) throws IOException {

    AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);

    AmazonS3 s3client = new AmazonS3Client(credentials);

    try {
        System.out.println("Uploading a new object to S3 from a file\n");
        File file = new File(uploadFileName);
        System.out.println(file.getName());   //prints - compression_score_09-04-2015.csv
        s3client.putObject(new PutObjectRequest(bucketName, accessKey, file));
        System.out.println("File successfully uploaded");
    } catch (AmazonServiceException ase) {
        ase.printStackTrace();
    } catch (AmazonClientException ace) {
        ace.printStackTrace();
    }
}

}
理想情况下,bucket中的文件应具有名称
compression\u score\u 09-04-2015.csv
,而不是其
AKAJI3EBMILBCWENUSA

有人能告诉我应该怎么做吗?

在PutObjectRequest构造函数中,key参数实际上是上传文件的名称,而不是访问密钥

来自SDK文档:

Parameters:bucketName—存储到的现有存储桶的名称

将上载新对象

键-用于存储新对象的键。

输入-上传到AmazonS3的数据流。元数据-对象元数据

这至少指定了数据流的内容长度 正在上传

资料来源:


您不必在此处指定accessKey,因为您已使用包含访问密钥和密钥的凭据实例化AmazonS3Client对象。

在PutObjectRequest构造函数中,密钥参数实际上是上载文件的名称,而不是访问密钥

来自SDK文档:

Parameters:bucketName—存储到的现有存储桶的名称

将上载新对象

键-用于存储新对象的键。

输入-上传到AmazonS3的数据流。元数据-对象元数据

这至少指定了数据流的内容长度 正在上传

资料来源:


您不必在此处指定accessKey,因为您已经用包含访问和密钥的凭据实例化了AmazonS3Client对象。

我冒昧地从您的帖子中删除了访问和密钥,因为它们看起来是真实的。我想让你知道,如果我的编辑不被接受,或者你想自己改变它。如果它们不是真的钥匙,请忽略这一点。虽然它们不是真的,但我还是明白你的意思。谢谢。我冒昧地从你的帖子中删除了访问权限和密钥,因为它们看起来是真实的。我想让你知道,如果我的编辑不被接受,或者你想自己改变它。如果它们不是真的钥匙,请忽略这一点。虽然它们不是真的,但我还是明白你的意思。谢谢。@roger_:酷。我很高兴它成功了。尽管这不是公认的答案。只是说:-P@roger_that:酷。我很高兴它成功了。尽管这不是公认的答案。只是说,:-P