我正在将一些文件上传到 S3 存储桶。一个 zip 文件,一个 .json 文件。
当我上传它们时,两个文件都会有:
Content-Type: application/octet-stream
我需要 zip 文件:
Content-Type: text/plain
Content-Encoding: gzip
我需要做什么才能确保这些文件以所需的类型/编码上传?
下面是我的一些代码:
保存文件:
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName)));
bw.write(content);
bw.close();
上传文件:
AWSCredentials myCredentials = new BasicAWSCredentials(ACCESS_KEY,SECRET_KEY);
TransferManager tx = new TransferManager(myCredentials);
Upload uploading = tx.upload(new PutObjectRequest(bucket, awsFileKey, file));
我想要实现的目标:
我正在开发自动建议功能。如果我上传纯 json 文件,它会超过 1.5MB,这很糟糕。因此,下一步最好的事情是上传 ZIP 文件(它将文件减少到 300kb,不错),然后当用户加载页面时,浏览器应该解压缩。由于某些原因,仅将内容类型/编码设置为指定的内容有效,其他一切都会失败。
最佳答案
对象元数据。新建然后设置您想要的元数据。
PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, awsFileKey, file);
if (metadata != null) {
putObjectRequest.setMetadata(metadata);
}
关于java - 上传到S3时如何设置内容类型和内容编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16659563/