我是使用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());
答案 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));