Java实现Google cloud storage 文件上传,Google oss

storage 控制台位置
Java实现Google cloud storage 文件上传,Google oss_第1张图片创建一个bucket

Java实现Google cloud storage 文件上传,Google oss_第2张图片

点进bucket里面,权限配置里,公开访问,在互联网上公开,需要配置角色权限
Java实现Google cloud storage 文件上传,Google oss_第3张图片
新增一个访问权限 ,账号这里可以模糊搜索,
Java实现Google cloud storage 文件上传,Google oss_第4张图片
角色配置
Java实现Google cloud storage 文件上传,Google oss_第5张图片
Java实现Google cloud storage 文件上传,Google oss_第6张图片
给allUser配置俩角色就可以出现 在互联网上公开.

配置完点保存就可以了。
Java实现Google cloud storage 文件上传,Google oss_第7张图片

下载json文件,找到服务账号

Java实现Google cloud storage 文件上传,Google oss_第8张图片

账号
Java实现Google cloud storage 文件上传,Google oss_第9张图片
选择角色
Java实现Google cloud storage 文件上传,Google oss_第10张图片
下载json文件

Java实现Google cloud storage 文件上传,Google oss_第11张图片

上传方法

package com.jeesea.manage.utils;

import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.storage.*;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;

public class GoogleStorageUtils {

    // 存储桶名称
    static String bucketName = "mhxq";

    public static String upload(MultipartFile file , String objectName,String contentType){
        try {
           //json文件放到了 resources 下面   
            // 从resources目录中加载JSON密钥文件的输入流并确保资源的正确关闭
            try (InputStream inputStream = new ClassPathResource("key.json").getInputStream()) {
                // 初始化Google Cloud Storage服务
                Storage storage = StorageOptions.newBuilder().setCredentials(GoogleCredentials.fromStream(inputStream)).build().getService();

                // 上传文件
                BlobId blobId = BlobId.of(bucketName, objectName);
                BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();
                Blob blob = storage.create(blobInfo, file.getBytes());
                //修改已经上传的文件类型为 image/jpg
                blob.toBuilder().setContentType(contentType).build().update();

                // 返回文件访问链接
                return "https://storage.googleapis.com/"+bucketName +"/"+ objectName ;
            }
        } catch (IOException e) {
            e.printStackTrace();
            return "上传文件失败";
        }

    }

    /**
     * 上传图片到 Google Cloud storage
     * @param file
     * @param objectName
     * @return
     */
    public static String uploadImg(MultipartFile file , String objectName){
      return  upload(file , objectName , "image/jpg");
    }

    /**
     * 上传mp4视频到 Google Cloud storage
     * @param file
     * @param objectName
     * @return
     */
    public static String uploadVideo(MultipartFile file , String objectName){
        return  upload(file , objectName , "video/mp4");
    }
}

你可能感兴趣的:(java,开发语言)