gpt4 book ai didi

java - AWS s3响应 header

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:03 25 4
gpt4 key购买 nike

我正在尝试在 ObjectMetadata 类中创建自定义 header ,并为其提供以下代码

private String cust_header;
public String getcust_header() {
return cust_header;
}

public void setcust_header(String cust_header) {
cust_header = cust_header;
}

这就是构造函数的样子:

private ObjectMetadata(ObjectMetadata from) {
this.userMetadata = from.userMetadata == null
? null
: new TreeMap<String,String>(from.userMetadata);
// shallow clone the meata data
this.metadata = from.metadata == null
? null
: new TreeMap<String, Object>(from.metadata);
this.expirationTime = cloneDate(from.expirationTime);
this.expirationTimeRuleId = from.expirationTimeRuleId;
this.httpExpiresDate = cloneDate(from.httpExpiresDate);
this.ongoingRestore = from.ongoingRestore;
this.restoreExpirationTime = cloneDate(from.restoreExpirationTime);
this.cust_header = "custom header";
}

我正在尝试将文件上传到 s3 实例并获取响应 header 。下面是我的代码:

AmazonS3 conn = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(Regions.US_WEST_2).build();
Bucket bucket;
if (conn.doesBucketExist("xxx")) {
System.out.println("Bucket already exists");

}
bucket = conn.createBucket("xxx");

ByteArrayInputStream input = new ByteArrayInputStream("Hello World!".getBytes());
ObjectMetadata objectMetadata = new ObjectMetadata();
PutObjectRequest request = new PutObjectRequest(bucket.getName(), "hello.txt", input, objectMetadata);

PutObjectResult response = conn.putObject(request);

S3Object object = conn.getObject(new GetObjectRequest(bucket.getName(), "hello.txt"));
InputStream objectData = object.getObjectContent();
System.out.println("Content-Type: " + object.getObjectMetadata().getContentType() + " custom Header : "
+ object.getObjectMetadata().getcust_header());

我正在尝试打印所有标题。但是,我在尝试打印所有标题时收到空值。有人可以解释一下我哪里出错了吗?

来源AWS Documentation

最佳答案

我已经找到了一个运行良好的解决方案。与 HTTP header 不同,必须设置响应读取的自定义 header 。然后我们可以像下面这样打印:

Date expirationTime = new Date();
response.setETag("123");
response.setExpirationTime(expirationTime);
System.out.println("ET Flag : " + response.getETag() + " " + "Expiration Time" + response.getExpirationTime() + " ");

首先,我们必须在 ObjectMetadata 中创建自定义 header ,然后我们必须使用 PutObjectRequest 中提供的方法或为自定义对象创建自定义 getter 和 setter。

关于java - AWS s3响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46286288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com