一文详解如何使用Google Cloud Storage作为文件存储服务 您所在的位置:网站首页 国内如何使用谷歌文档下载 一文详解如何使用Google Cloud Storage作为文件存储服务

一文详解如何使用Google Cloud Storage作为文件存储服务

2024-07-08 12:32| 来源: 网络整理| 查看: 265

如何使用谷歌 Cloud Storage作为项目的图片存储服务

在使用Cloud Storage服务之前,需要在谷歌项目中创建服务账号

创建服务账号

1.在控制台中打开导航菜单——API和服务——凭据页面 在这里插入图片描述 2.点击创建凭据——服务账号 在这里插入图片描述 3.填写服务账号信息 在这里插入图片描述

我们为服务账号添加默认Owner角色权限 在这里插入图片描述 这里填写你自己的谷歌账号,也就是可以用你自己的谷歌账号可以对该服务账号进行修改权限等操作 在这里插入图片描述 创建服务账号以后,下一步就要为服务账号创建密钥了,密钥是我们访问Cloud Storage的API的凭据

为服务账号创建json密钥

上一步创建服务账号后,在服务账号的页面就可以看到新创建的服务账号了,这里我们点击该服务账号的——管理密钥 在这里插入图片描述 进入密钥管理页面后,我们点击 添加密钥——创建新密钥 在这里插入图片描述 在这里插入图片描述 点击创建后,就会创建json格式的密钥了,并且也会自动将密钥下载到我们的本机 在这里插入图片描述

Cloud Storage控制台创建存储桶

存储桶是作为存放我们的文件的容器,我们所有的文件上传成功后都会在我们创建的存储桶容器中

1.创建存储桶 在这里插入图片描述 这里要注意,数据存储位置和默认存储类别将影响访问速度,要根据提示选择适合自己项目的位置和存储类别 在这里插入图片描述 2.修改存储桶的访问权限 在这里插入图片描述 进入存储桶的详情,在权限页面,要修改该存储桶的访问权限,首先设置存储桶为“公开访问”状态和“精细控制”状态,第二要添加“allUsers”账号,并且权限设置为Storage Legacy Object Reader 和 Storage Object Viewer, 表示任何人都拥有存储桶的查看权限和里边单个文件的查看权限

写Demo进行测试

这里我们使用java进行操作,写一个最常用的图片上传和访问的功能

1.第一步我们要做的是先引入Google Cloud Storage的相关依赖

com.google.cloud libraries-bom 22.0.0 pom import com.google.cloud google-cloud-storage

下面是详细代码:

package com.google.test; import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.storage.*; import com.google.common.collect.Lists; import java.io.FileInputStream; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; public class GoogleFileUtil { public static void main(String[] args) throws IOException { String filepath = uploadFile("测试", "vue_jinbeiwallet_com"); System.out.println("公开访问地址是::::" + filepath); } public static String uploadFile(String fileName,String bucketName) throws IOException { //要上传的本地文件的绝对路径 String filePath = "D:/imgs/wallhaven/钻石/1krllv.jpg"; //读取本地存储的服务账号的json密钥,拿到该服务账号的权限 GoogleCredentials credentials= GoogleCredentials.fromStream(new FileInputStream("D:/tity/linear-stock-325210-33d0c8edd2cc.json")) .createScoped(Lists.newArrayList("https://www.googleapis.com/auth/cloud-platform")); //创建服务账号对应的操作对象 Storage storage = StorageOptions.newBuilder().setCredentials(credentials).build().getService(); // 将本地指定路径的文件转换为字节 byte[] bytes = Files.readAllBytes(Paths.get(filePath)); //上传文件图片到指定的存储桶中 BlobId blobId=BlobId.of(bucketName,fileName); BlobInfo blobInfo=BlobInfo.newBuilder(blobId).build(); Blob blob = storage.create(blobInfo, bytes); //修改已经上传的文件类型为 image/jpg blob.toBuilder().setContentType("image/jpg").build().update(); //返回公开访问的地址 return "https://storage.googleapis.com/" + bucketName + "/" + fileName; } }

以上代码需要注意的是,第一个是本地存放json密钥的绝对路径,在liunx系统上写法跟windows不一样,需要修改 第二是需要修改上传后的文件类型,要根据自己上传文件的类型进行修改,如果不修改,默认都是application/octet-stream,,这样的话访问公开地址就会变成下载地址

下面我们来看一下运行结果: 在这里插入图片描述 在这里插入图片描述

成功上传并且生成公开访问地址,在实际运用中,我们一般会将该访问地址入库,在前端需要的时候请求并返回该地址就好了

如果觉得对你有用,记得动动你发财的小手,帮我点赞,收藏,分享,谢谢!


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有