AWS S3在使用putObject(String,String,String)时更改文件扩展名

时间:2017-07-14 14:25:24

标签: java amazon-web-services amazon-s3

我是使用AWS S3的新手,我必须使用putObject(bucket name, key , string that will become the file)方法上传文件(让我的生活更轻松)。我想知道是否可以更改扩展名,因为当我使用此方法时,上传的文件总是具有'.txt'扩展名,但我需要它为'.csv'。

代码非常简单:

public void uploadStringFile(String bucket,String username, String fileString) {
    s3Client.putObject(bucket, username, fileString);
}

awsS3Service.uploadStringFile("ati-teste",fileName, sb.toString());

1 个答案:

答案 0 :(得分:2)

这是助手uploadStringFile方法的签名:

public void uploadStringFile(String bucket,String username, String fileString)

参数名称可能具有误导性。我们看到代码委托给AmazonS3#putObject(String, String, String)

s3Client.putObject(bucket, username, fileString);

根据其JavaDocs,参数为:

  

参数:

     

bucketName - 放置新对象的存储桶的名称。

     

key - 要创建的对象的键。

     

content - 要编码的字符串

请注意,没有username。相反,第二个参数是目标key。因此,您可以在第二个参数中简单地传递您想要的任何键,这就是它在S3中的位置。如果您已经有一个像“test1.txt”这样的基本文件名,那么在调用S3方法之前,您可以使用基本的String操作将其更改为“test1.csv”。

请注意,您还可能会发现使用S3 API的其他变体(如AmazonS3#putObject(String, String, File)AmazonS3#putObject(PutObjectRequest)更方便,如下所示:

s3Client.putObject(new PutObjectRequest()
        .withBucketName(bucket)
        .withKey(key)
        .withFile(inputFileObject));