Amazon web services 如何获取AmazonS3对象的最新版本ID?
给定一个有效的AmazonS3路径,指定要获取版本ID的bucket和文件,如何使用AWS SDK JAVA API获取最新版本ID 我试图在中搜索API,但没有找到返回VersionID的API 函数签名为Amazon web services 如何获取AmazonS3对象的最新版本ID?,amazon-web-services,amazon-s3,aws-sdk,Amazon Web Services,Amazon S3,Aws Sdk,给定一个有效的AmazonS3路径,指定要获取版本ID的bucket和文件,如何使用AWS SDK JAVA API获取最新版本ID 我试图在中搜索API,但没有找到返回VersionID的API 函数签名为字符串getLatestVersionID(字符串S3Path) Thx您可以通过调用该方法来设置版本Id值。以下是此操作的代码: package com.example.s3; // snippet-start:[s3.java2.getobjectdata.import] import
字符串getLatestVersionID(字符串S3Path)代码>
Thx您可以通过调用该方法来设置版本Id值。以下是此操作的代码:
package com.example.s3;
// snippet-start:[s3.java2.getobjectdata.import]
import software.amazon.awssdk.core.ResponseBytes;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
import software.amazon.awssdk.services.s3.model.S3Exception;
import software.amazon.awssdk.services.s3.model.GetObjectResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
// snippet-end:[s3.java2.getobjectdata.import]
/**
* To run this AWS code example, ensure that you have setup your development environment, including your AWS credentials.
*
* For information, see this documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
public class GetObjectData {
public static void main(String[] args) {
final String USAGE = "\n" +
"Usage:\n" +
" GetObjectData <bucketName> <keyName> <path>\n\n" +
"Where:\n" +
" bucketName - the Amazon S3 bucket name. \n\n"+
" keyName - the key name. \n\n"+
" path - the path where the file is written to. \n\n";
if (args.length != 3) {
System.out.println(USAGE);
System.exit(1);
}
String bucketName = args[0];
String keyName = args[1];
String path = args[2];
Region region = Region.US_EAST_1;
S3Client s3 = S3Client.builder()
.region(region)
.build();
getObjectBytes(s3,bucketName,keyName, path);
s3.close();
}
// snippet-start:[s3.java2.getobjectdata.main]
public static void getObjectBytes (S3Client s3, String bucketName, String keyName, String path ) {
try {
GetObjectRequest objectRequest = GetObjectRequest
.builder()
.key(keyName)
.versionId("<Set Version ID>")
.bucket(bucketName)
.build();
ResponseBytes<GetObjectResponse> objectBytes = s3.getObjectAsBytes(objectRequest);
byte[] data = objectBytes.asByteArray();
// Write the data to a local file
File myFile = new File(path );
OutputStream os = new FileOutputStream(myFile);
os.write(data);
System.out.println("Successfully obtained bytes from an S3 object");
os.close();
} catch (IOException ex) {
ex.printStackTrace();
} catch (S3Exception e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
// snippet-end:[s3.java2.getobjectdata.main]
}
}
package com.example.s3;
//代码段开始:[s3.java2.getobjectdata.import]
导入software.amazon.awssdk.core.ResponseBytes;
导入software.amazon.awssdk.regions.Region;
导入software.amazon.awssdk.services.s3.S3Client;
导入software.amazon.awssdk.services.s3.model.GetObjectRequest;
导入software.amazon.awssdk.services.s3.model.s3异常;
导入software.amazon.awssdk.services.s3.model.GetObjectResponse;
导入java.io.File;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.OutputStream;
//代码段结尾:[s3.java2.getobjectdata.import]
/**
*要运行此AWS代码示例,请确保已设置开发环境,包括AWS凭据。
*
*有关信息,请参阅本文档主题:
*
* https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
*/
公共类GetObjectData{
公共静态void main(字符串[]args){
最终字符串用法=“\n”+
“用法:\n”+
“GetObjectData\n\n”+
“其中:\n”+
“bucketName-Amazon S3存储桶名称。\n\n”+
“keyName-密钥名。\n\n”+
“路径-文件写入的路径。\n\n”;
如果(参数长度!=3){
System.out.println(用法);
系统出口(1);
}
字符串bucketName=args[0];
字符串keyName=args[1];
字符串路径=args[2];
Region Region=Region.US\u EAST\u 1;
S3Client s3=S3Client.builder()
.地区(地区)
.build();
getObjectBytes(s3、bucketName、keyName、path);
s3.close();
}
//代码段开始:[s3.java2.getobjectdata.main]
公共静态void getObjectBytes(s3客户端s3,字符串bucketName,字符串keyName,字符串路径){
试一试{
GetObjectRequest objectRequest=GetObjectRequest
.builder()
.key(keyName)
.versionId(“”)
.bucket(bucketName)
.build();
ResponseBytes objectBytes=s3.getObjectAsBytes(objectRequest);
byte[]data=objectBytes.asByteArray();
//将数据写入本地文件
File myFile=新文件(路径);
OutputStream os=新文件OutputStream(myFile);
写(数据);
System.out.println(“从S3对象成功获取字节”);
os.close();
}捕获(IOEX异常){
例如printStackTrace();
}捕获(S3E例外){
System.err.println(例如awsErrorDetails().errorMessage());
系统出口(1);
}
//代码段结尾:[s3.java2.getobjectdata.main]
}
}
headObject
是您要查找的对象您好,我不需要设置版本id。我想获取最新的版本id。