Google app engine 通过GCS提供文件时找不到blob错误
我试图通过Blob提供zip文件,存储在GCS中。但是我得到了这个错误“严重:找不到blob:BlobKey:encoded\u gs\u key:XYZ” 我还尝试了此链接中的给定代码,以确保我在对象上具有正确的ACL,并且我能够成功运行此代码:Google app engine 通过GCS提供文件时找不到blob错误,google-app-engine,servlets,google-cloud-storage,Google App Engine,Servlets,Google Cloud Storage,我试图通过Blob提供zip文件,存储在GCS中。但是我得到了这个错误“严重:找不到blob:BlobKey:encoded\u gs\u key:XYZ” 我还尝试了此链接中的给定代码,以确保我在对象上具有正确的ACL,并且我能够成功运行此代码: 帮帮我!!感谢您的帮助 此错误仅在开发服务器中发生。目前不支持在Java devappserver中提供存储在云存储中的Blob。@SebastianKreft您能告诉我实现同样目的的其他方法吗。我所需要做的就是读取GCS中的zip文件并将其发送到我
帮帮我!!感谢您的帮助 此错误仅在开发服务器中发生。目前不支持在Java devappserver中提供存储在云存储中的Blob。@SebastianKreft您能告诉我实现同样目的的其他方法吗。我所需要做的就是读取GCS中的zip文件并将其发送到我的android应用程序。谢谢!!从Clous存储中提供BLOB在生产中确实有效。它不在devappserver中。如果您仍然需要它在devappserver中工作,您可以使用GCS客户端。请参见示例。@SebastianKreft很抱歉再次打扰您,但我以前尝试过该代码,但总是出现以下错误:“没有这样的文件:GcsFilename(“myBucketName”、“myzipfile.zip”)”…我再次尝试使用您发送的示例,但我得到了相同的错误..仅供参考:我硬编码了bucketname和文件名,而不是从httpRequest中提取..这次您能帮我一下吗..谢谢我很抱歉..我被“生产”这个词弄糊涂了…我将我的脚本部署并运行到应用程序引擎,它确实起了作用..非常感谢您的耐心和支持..!!:))
java.io.PrintWriter out = resp.getWriter( );
out.println("before");
try{
GcsFilename fileName = getFileName();
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
out.println("after");
BlobKey blobKey = blobstoreService.createGsBlobKey(
"/gs/"+ fileName.getBucketName() + "/" + fileName.getObjectName());
out.println("before");
out.println(blobKey);
blobstoreService.serve(blobKey, resp);
}
catch(Exception e){
out.println(e.getMessage());
}
resp.setContentType("application/zip");
resp.getWriter().println("Hello, world Blob");
}
private GcsFilename getFileName() {
String bucketname = "androidbucket";
String filename = "test.zip";
return new GcsFilename(bucketname, filename);
}