App Engine和云存储如何通过程序以公共链接的方式保存文件

色歌

我写一个函数来创建缩略图,但是缩略图没有公开链接,即使原始文件具有的权限User- allUsers-Reader和公众联系https://storage.googleapis.com/{buckets}/{filename}的所有用户访问的文件。

如何将此权限添加到缩略图中。

public static void thumbnailImage(String filename, int width, int height) throws IOException{
    GcsService gcsService = GcsServiceFactory.createGcsService(new RetryParams.Builder()
              .initialRetryDelayMillis(10)
              .retryMaxAttempts(10)
              .totalRetryPeriodMillis(15000)
              .build());
    AppIdentityService appIdentity = AppIdentityServiceFactory.getAppIdentityService();
    ImagesService imagesService = ImagesServiceFactory.getImagesService();
    // Make an image from a Cloud Storage object, and transform it.
    BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
    BlobKey blobKey = blobstoreService.createGsBlobKey("/gs/" + appIdentity.getDefaultGcsBucketName() +"/"+ filename);

    Image thumb = null;
    try{
        Image blobImage = ImagesServiceFactory.makeImageFromBlob(blobKey);          
        Transform resize = ImagesServiceFactory.makeResize(width, height);
        thumb = imagesService.applyTransform(resize, blobImage);

    }catch(Exception e){
        e.printStackTrace();
    }
    String extension = Files.getFileExtension(filename);
    filename = stripExtension(filename);
    filename = String.format("%1$s_%2$s.%3$s", filename, thumbnail, extension);

    if(thumb!=null)
    // Write the transformed image back to a Cloud Storage object.
    gcsService.createOrReplace(
        new GcsFilename(appIdentity.getDefaultGcsBucketName(), filename),
        new GcsFileOptions.Builder().mimeType("image/jpeg").build(),
        ByteBuffer.wrap(thumb.getImageData()));
}
布兰登·雅伯(Brandon Yarbrough)

您可以使用GcsFileOption参数“ acl”使此设置对其他人可见。因此,请在此末尾更改该位:

new GcsFileOptions.Builder().mimeType("image/jpeg").acl("public-read").build(),

公开链接将具有相同的storage.googleapis.com/bucket/object模式,但object是缩略图的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取本地开发服务器中Google云存储上载文件的公共链接(Google App Engine + JAVA)

来自分类Dev

获取文件的公共URL-Google云存储-App Engine(Python)

来自分类Dev

获取文件的公共URL-Google云存储-App Engine(Python)

来自分类Dev

如何访问通过App Engine应用存储的文件

来自分类Dev

从App Engine到云存储的异步请求

来自分类Dev

使用Google App Engine Python将图像从外部链接上传到Google云存储

来自分类Dev

上传到Google App Engine存储桶并将文件标记为公共文件

来自分类Dev

禁用App Engine应用程序后,Google云数据存储区API无法找到项目

来自分类Dev

PHP代码读取Excel文件上传到Google App Engine云存储桶

来自分类Dev

通过Eclipse的Google App Engine存储库

来自分类Dev

如何发送发布请求以将字节数组图像从运行在Google App Engine上的Servlet保存到Google云存储中

来自分类Dev

带有云存储的Google App Engine无法在本地运行

来自分类Dev

Google Cloud:存储和 App Engine

来自分类Dev

如何从Google App Engine下载应用程序源文件

来自分类Dev

通过Compute Engine与App Engine通信的安全方式

来自分类Dev

Google App Engine免费套餐和云平台

来自分类Dev

无需太多设置即可在多个Google App Engine应用程序之间共享Google云存储

来自分类Dev

如何授予对gCloud App Engine的公共访问权限

来自分类Dev

Google App Engine应用程序没有可用的链接

来自分类Dev

通过Java使用App Engine数据存储库低级API

来自分类Dev

使用Google App Engine存储和播放视频文件的最佳方法

来自分类Dev

在下载过程中,如何使Google App Engine压缩?

来自分类Dev

如何通过单击链接在 Angular Front End Web App 的浏览器中下载或保存 .csv 文件?浏览器投诉没有文件

来自分类Dev

使用Google App Engine通过JSON文件进行解析的动态标记和infoWindow Google Maps API

来自分类Dev

JDBC和App Engine的NullPointerException

来自分类Dev

App Engine API 和密钥

来自分类Dev

Google App Engine Blob存储...用于更改文件大小的语法?

来自分类Dev

如何使用Java App Engine将图片文件正确上传到Google云端存储?

来自分类Dev

如何使用Java App Engine将图片文件正确上传到Google云端存储?

Related 相关文章

  1. 1

    如何获取本地开发服务器中Google云存储上载文件的公共链接(Google App Engine + JAVA)

  2. 2

    获取文件的公共URL-Google云存储-App Engine(Python)

  3. 3

    获取文件的公共URL-Google云存储-App Engine(Python)

  4. 4

    如何访问通过App Engine应用存储的文件

  5. 5

    从App Engine到云存储的异步请求

  6. 6

    使用Google App Engine Python将图像从外部链接上传到Google云存储

  7. 7

    上传到Google App Engine存储桶并将文件标记为公共文件

  8. 8

    禁用App Engine应用程序后,Google云数据存储区API无法找到项目

  9. 9

    PHP代码读取Excel文件上传到Google App Engine云存储桶

  10. 10

    通过Eclipse的Google App Engine存储库

  11. 11

    如何发送发布请求以将字节数组图像从运行在Google App Engine上的Servlet保存到Google云存储中

  12. 12

    带有云存储的Google App Engine无法在本地运行

  13. 13

    Google Cloud:存储和 App Engine

  14. 14

    如何从Google App Engine下载应用程序源文件

  15. 15

    通过Compute Engine与App Engine通信的安全方式

  16. 16

    Google App Engine免费套餐和云平台

  17. 17

    无需太多设置即可在多个Google App Engine应用程序之间共享Google云存储

  18. 18

    如何授予对gCloud App Engine的公共访问权限

  19. 19

    Google App Engine应用程序没有可用的链接

  20. 20

    通过Java使用App Engine数据存储库低级API

  21. 21

    使用Google App Engine存储和播放视频文件的最佳方法

  22. 22

    在下载过程中,如何使Google App Engine压缩?

  23. 23

    如何通过单击链接在 Angular Front End Web App 的浏览器中下载或保存 .csv 文件?浏览器投诉没有文件

  24. 24

    使用Google App Engine通过JSON文件进行解析的动态标记和infoWindow Google Maps API

  25. 25

    JDBC和App Engine的NullPointerException

  26. 26

    App Engine API 和密钥

  27. 27

    Google App Engine Blob存储...用于更改文件大小的语法?

  28. 28

    如何使用Java App Engine将图片文件正确上传到Google云端存储?

  29. 29

    如何使用Java App Engine将图片文件正确上传到Google云端存储?

热门标签

归档