java - 使用 java 库上传到谷歌云存储时设置对象类型
问题描述
使用 Java 库将对象上传到 GCP https://cloud.google.com/storage/docs/uploading-objects#storage-upload-object-code-sample,代码如下
public static void uploadObject(
String projectId, String bucketName, String objectName, String filePath) throws IOException {
Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
BlobId blobId = BlobId.of(bucketName, objectName);
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();
storage.create(blobInfo, Files.readAllBytes(Paths.get(filePath)));
System.out.println(
"File " + filePath + " uploaded to bucket " + bucketName + " as " + objectName);
}
上面的代码效果很好,但是图片的内容类型是application/octet-stream
How do I set to image/jpg
or image/png
。如何在上传前设置元数据
解决方案
BobInfo 有一个 Builder,它有很多选项,包括 setContentType。
如果您总是看到 builder/newBuilder,则需要进一步调查文档以查看是否还有其他(setter)。
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("image/jpeg").build();
=== 已编辑 ===
public String determineContentType(File inputFile){
String contentType = // Your logic of determining type of file format
return contentType;
}
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType(determineContentType(yourFile)).build();