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

无法从Google云存储获取图像的服务URL->“not\u IMAGE:无法读取图像”

长孙作人
2023-03-14

我首先将一幅图像保存到Google云存储中,同时将mime类型设置为“image/png”,并以文件结尾随机命名,例如“.png”。文件似乎存储正确。我可以在数据存储查看器中看到它们:

但如果我尝试用com再次加载它。谷歌。阿彭金。api。图像。ImagesService和调用ImagesService。getServigUrl(),它抛出错误:

java.lang.IllegalArgumentException: NOT_IMAGE: Failed to read image

所以这似乎认为这不是一个图像。但为什么呢?它有mime类型集,它有文件结尾。代码如下所示:

ImagesService imagesService = ImagesServiceFactory.getImagesService();
Image newImage = imagesService.applyTransform(crop, oldImage);

final GcsService gcsService =
        GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());

AppIdentityService appservice =  com.google.appengine.api.appidentity.AppIdentityServiceFactory.getAppIdentityService();

GcsFilename fileName = new GcsFilename(appservice.getDefaultGcsBucketName(), Long.toString(random.nextLong(), 36)+"."+newImage.getFormat().toString().toLowerCase());

GcsFileOptions gcsOptions = new GcsFileOptions.Builder()
  .mimeType("image/"+newImage.getFormat().toString().toLowerCase())
  .acl("public-read").build();

GcsOutputChannel outputChannel =
        gcsService.createOrReplace(fileName, gcsOptions);

ObjectOutputStream oout =
    new ObjectOutputStream(Channels.newOutputStream(outputChannel));
oout.writeObject(newImage.getImageData());
oout.close();


ServingUrlOptions suo = ServingUrlOptions.Builder.withGoogleStorageFileName("/gs/"+fileName.getBucketName()+"/"+fileName.getObjectName()).secureUrl(true);
String s = imagesService.getServingUrl(suo);
System.out.println(s);

共有1个答案

秋博容
2023-03-14

可能它不是您上传的图像mime类型,请检查上传文件的mime类型。

 类似资料:
  • 我一直在到处寻找答案,但没有任何帮助。 这是我的代码: 当我试图读取URL时,下面出现了一个异常。 任何帮助都会很好。我正在尝试读取url内部的图像,并将其与现有文件进行比较。这里没有任何问题给出答案。 编辑: 我尝试在命令行“keytool-list-keystore keystore”中输入,但它只显示给我TrustedCertentries。还没有解决方案奏效。

  • 我试图使用Java客户机将数据从S3传输到GCS,但我遇到了这个错误。 由于权限不足,无法获取Google云存储(GCS)存储桶的位置。请验证是否已授予必要的权限。 我正在使用具有项目所有者角色的服务号,它应该授予对所有项目资源的无限制访问权限。

  • 我正在尝试从管道(如stdin,named pipe等)加载图像。 这是我的示例代码: #包括“opencv2/opencv.hpp” 使用名称空间CV; int main(int argc,char**argv){ } 会有用的,但是 而且 不能工作,并且Mat img的行和列为0。 真正的文件和管道有什么区别?

  • 问题内容: 我已经编写了一个程序来加密Netbeans中的图像。从Netbeans运行时,该程序运行良好,但是当我将其构建为.jar文件时,即使我将图像文件与.jar文件放在同一文件夹中,它也无法读取图像。 //加密 //加载/写入图片 问题答案: 目前尚不清楚以下哪个触发您的错误。这个 将从当前目录读取,该目录不一定与您的jar文件所在的目录相同。 这个 将从类所在的jar文件中的目录中读取。请

  • 我正在使用以下代码获取垂直图像并向其添加类,但我不知道为什么,它不起作用: 我的测试页

  • 问题内容: 我正在运行kubeadm alpha版本来设置我的kubernates集群。从kubernates,我试图提取在nexus存储库中托管的docker镜像。每当我尝试创建Pod时,每次都会给出“ ImagePullBackOff”。有人可以帮我吗? 有关详细信息,请参见https://github.com/kubernetes/kubernetes/issues/41536 吊舱定义: