我试图使用Java(http://docs.aws.amazon.com/AmazonS3/latest/dev/RetrievingObjectUsingJava.html)来获取存储在Amazon S3中的文件,但我对象密钥存在问题,因为我不知道它是什么。
存储桶名称为testbucket
,我在此存储桶中有一个名为files
的文件夹。如果我有一个名为image.jpeg
的文件;什么是对象键?
private static String bucketName = "testbucket";
private static String key="files/image.jpeg";
public static void main(String[] args) throws IOException {
AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
S3Object s3object = s3Client.getObject(new GetObjectRequest(
bucketName, key));
}
我得到了这个输出:
21:43:54.054 [main] DEBUG com.amazonaws.request - Sending Request: GET https://adap-demo.s3.amazonaws.com /report_templates/Testreport_1.jrxml
Headers: (User-Agent: aws-sdk-java/1.10.30 Linux/4.4.0-70-generic
OpenJDK_64-Bit_Server_VM/25.121-b13/1.8.0_121, Content-Type:
application/x-www-form-urlencoded; charset=utf-8, )
21:43:54.164 [main] DEBUG c.a.services.s3.internal.S3Signer - Calculated
string to sign:
"GET
application/x-www-form-urlencoded; charset=utf-8
Sun, 02 Apr 2017 19:43:54 GMT
/adap-demo/report_templates/Testreport_1.jrxml"
Caught an AmazonClientException, which means the client encountered an
internal error while trying to communicate with S3, such as not being able
to access the network.
Error Message: Unable to calculate a request signature: Unable to
calculate a request signature: Empty key