我正在使用 Google Cloud Storage 在 Google App Engine 中存储一个文件。该文件加载正常,但服务返回一个解释为二进制文件而不是原始 mime 类型的文件。您将在后面找到代码。有没有人知道发生了什么?
一、存储文件
GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
.setBucket(BUCKET_NAME)
.setKey(objectId)
.setAcl("project-private")
.setMimeType(mimeType)
.setContentDisposition("attachment;filename "+item.getName());
二、服务文件
blobKey = blobstoreService.createGsBlobKey("/gs/"+BUCKET_NAME+"/"+ fileName);
blobstoreService.serve(blobKey, resp);
三、与在 blobstore 中提供文件的区别
我有一段过去可以工作的代码。问题在于,显然 BlobInfo 对象仅适用于存储在 blobstore 中的对象,而不适用于存储在 Google Cloud Storage 中的对象
BlobInfo blobInfo = blobInfoFactory.loadBlobInfo(blobKey);
resp.setContentLength(new Long(blobInfo.getSize()).intValue());
resp.setHeader("content-type", blobInfo.getContentType());
resp.setHeader("content-disposition", "attachment; filename=" +
blobInfo.getFilename());
blobstoreService.serve(blobKey, resp);
非常欢迎任何帮助!
谢谢,
雨果