rog*_*hat 1 java file-upload amazon-s3 amazon-web-services aws-sdk
我正在尝试将 csv 文件上传到 S3 存储桶。代码运行成功,但是当我检查存储桶时,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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,存储桶中的文件应该带有名称,compression_score_09-04-2015.csv
而不是AKAJI3EBMILBCWENUSA
. 有人可以指导应该做什么吗?
在 PutObjectRequest 构造函数中,关键参数实际上是上传文件的名称,而不是访问密钥。
来自SDK文档:
参数:bucketName - 现有存储桶的名称
将上传新对象。
key - 用于存储新对象的键。
input - 要上传到 Amazon S3 的数据流。元数据 - 对象元数据。
这至少指定正在上传的数据流的内容长度。
您不必在此处指定 accessKey,因为您已经使用包含访问密钥和秘密密钥的凭证实例化了 AmazonS3Client 对象。
归档时间: |
|
查看次数: |
8457 次 |
最近记录: |