【发布时间】:2016-06-07 05:28:52
【问题描述】:
我正在 GCS 上上传图像,然后用具有相同文件名 (image.png) 的不同图像覆盖它。在 GCS 浏览器中,我可以看到图像被覆盖(不同的大小、时间戳)但是当我尝试使用 getServingUrl() 获取图像的 URL 时,我得到了我第一次上传的图像的 URL!!!
如果我添加一个具有新文件名 (image2.png) 的图像,那么我会得到一个新 URL。如果我用另一个图像覆盖此图像(保持名称为 image2.png),那么我将再次获得原始 image2.png 的 URL。
这是我的代码:
String bucketName = "my_bucket_name";
String userFileName = "image.png";
try {
GcsFileOptions instance = GcsFileOptions.getDefaultInstance();
GcsFilename fileName = new GcsFilename(bucketName, userFileName);// getFileName(request);
GcsOutputChannel outputChannel;
gcsService.delete(fileName);
outputChannel = gcsService.createOrReplace(fileName, instance);
copy(request.getInputStream(), Channels.newOutputStream(outputChannel));
} catch (IOException e) {
System.out.println(e.getMessage());
}
ImagesService imagesService = ImagesServiceFactory.getImagesService();
String url = imagesService.getServingUrl(ServingUrlOptions.Builder.withGoogleStorageFileName("/gs/" +
bucketName + "/" + userFileName).secureUrl(true));
谁能告诉我我在这里缺少什么?如何让 ImagesService 给我新上传图片的句柄?谢谢。
【问题讨论】:
-
使用 PHP 而不是 java 你可以参考这篇文章stackoverflow.com/questions/37646849/…
标签: google-app-engine google-cloud-storage google-cloud-platform