当前位置: 首页 > 知识库问答 >
问题:

使用java从Google云存储中检索图像时的\u BLOB_键无效

颛孙天宇
2023-03-14

我正在尝试使用谷歌云存储来存储我将在jsp文件中使用的图像。我创建了bucket,上传了一个图像(用于测试),并尝试从java类中检索指向它的Url。我一直收到错误信息

    HTTP ERROR 500

Problem accessing /. Reason:

INVALID_BLOB_KEY: Could not read blob.
Caused by:

java.lang.IllegalArgumentException: INVALID_BLOB_KEY: Could not read blob.
at 
com.google.appengine.api.images.ImagesServiceImpl.getServingUrl(ImagesServiceImpl.java:282)

我创造的水桶

我用来检索Url的代码(BUCKETNAME是一个带有bucket名称的静态字符串)

public static String getImageURL(String inFilename) {
    String key = "/gs/" + BUCKETNAME + "/" + inFilename;
    ImagesService imagesService = ImagesServiceFactory.getImagesService();
    ServingUrlOptions options =     ServingUrlOptions.Builder.withGoogleStorageFileName(key);
    String servingUrl = imagesService.getServingUrl(options);

    return servingUrl;
}

我试着把这张照片公之于众,但没用。我已经看过了各种各样的答案,但我有点不知所措。任何帮助都将不胜感激

共有1个答案

徐安康
2023-03-14

我也面临同样的问题。对于未来的人,一定要把这个桶公之于众。通过同样的方法,你也可以生成图片的缩略图和安全URL

public static String getImageURL(String inFilename) {
    String key = "/gs/" + BUCKETNAME + "/" + inFilename;
    ImagesService imagesService = ImagesServiceFactory.getImagesService();
    ServingUrlOptions options = ServingUrlOptions.Builder  
           .withGoogleStorageFileName(key).imageSize(150).secureUrl(true);
    String servingUrl = imagesService.getServingUrl(options);

    return servingUrl;
}
 类似资料:
  • 问题内容: 我是Java编程的新手,我正在搜索Java代码以将图像存储在PostgreSQL中并检索图像。 在PostgreSQL中,我使用了Bytea数据类型。图像已存储。但是当我检索时,我得到NULL。我无法获得图像。 对此的任何示例或对此的任何其他建议将是有帮助的。 问题答案: PostgreSQL jdbc文档的第7章介绍了如何存储二进制数据并使用图像(* .gif文件)作为示例。您可能想

  • 在使用云存储客户端API时,我开始遇到30MB的文件大小限制。经过研究,我发现GAE文档建议我使用BlobStore API。 然后我尝试使用blobstoreservice.createGsBlobKey()方法下载该文件。我将传入以下内容:“/gs/”+bucketName+“/”+fBlob.getblobkey()),其中fBlob是我的映射对象,它包含文件信息和blob键。 **编辑**

  • 我有一个存储图像的存储桶,当我使用图像的公共URL检索图像时,它会在浏览器中下载图像,而不是在浏览器中显示图像,我如何查看图像而不是下载图像。我为上传的图片使用以下URL。 https://www.googleapis.com/download/storage/v1/b/image-downloader-bucket/o/a06266f6-6082-468e-92ca-f918a48533a8?g

  • 问题是,当删除的映像(“test.jpg”)和上传的映像(“test.jpg”)的名称相同时,当我调用新上传的文件(我认为它已经缓存)时,将提供旧文件 无论如何,我可以永久删除这个文件而不缓存它吗?

  • 我已经阅读了与此相关的所有其他答案。但这对我不起作用,或者我只是不明白一些事情。请帮忙。 我正在从客户端发送'image/png'base64字符串。它是这样的:“Ivborw0kggoaaansuheugaaaaaaaaaaa……” 在云函数我有方法: 有什么不对劲?