Java 上载到AWS S3 bucket时更改文件名
我正在尝试将csv文件上载到S3 bucket。代码运行成功,但当我检查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-
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