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

  • Post author:
  • Post category:java


storage 控制台位置

在这里插入图片描述
创建一个bucket

在这里插入图片描述

点进bucket里面,权限配置里,公开访问,在互联网上公开,需要配置角色权限

在这里插入图片描述

新增一个访问权限 ,账号这里可以模糊搜索,

在这里插入图片描述

角色配置

在这里插入图片描述

在这里插入图片描述

给allUser配置俩角色就可以出现 在互联网上公开.

配置完点保存就可以了。

在这里插入图片描述

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

在这里插入图片描述

账号

在这里插入图片描述

选择角色

在这里插入图片描述

下载json文件

在这里插入图片描述

上传方法

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");
    }
}



版权声明:本文为pywanggui原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。