From 821fc2f632f8b974a2c0fc37630e13c5fbe6086c Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 26 九月 2025 17:26:16 +0800 Subject: [PATCH] 修改bug --- ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java | 47 ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 40 insertions(+), 7 deletions(-) diff --git a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java index 27fe457..6b5e89d 100644 --- a/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java +++ b/ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java @@ -1,10 +1,8 @@ package com.stylefeng.guns.modular.system.util; +import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.WriteChannel; -import com.google.cloud.storage.BlobId; -import com.google.cloud.storage.BlobInfo; -import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageOptions; +import com.google.cloud.storage.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -22,6 +20,10 @@ public static String upload(MultipartFile file){ + + + + // The ID of your GCP project // String projectId = "your-project-id"; @@ -34,8 +36,21 @@ // The path to your file to upload // String filePath = "path/to/your/file" String fileName = file.getOriginalFilename(); + String projectId = "i-go-gcp"; String bucketName = "i-go"; - Storage storage = StorageOptions.newBuilder().setProjectId("i-go-gcp").build().getService(); + GoogleCredentials defaultCredentials = null; + try { + defaultCredentials = GoogleCredentials.getApplicationDefault(); + } catch (IOException e) { + throw new RuntimeException(e); + } + defaultCredentials.createScoped("https://www.googleapis.com/auth/cloud-platform"); + Storage storage = StorageOptions + .newBuilder() + .setProjectId(projectId) + .setCredentials(defaultCredentials) + .build() + .getService(); BlobId blobId = BlobId.of(bucketName, fileName); BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build(); @@ -59,12 +74,30 @@ storage.createFrom(blobInfo, file.getInputStream(), precondition); System.out.println( "File uploaded to bucket " + bucketName + " as " + fileName); - return "https://storage.cloud.google.com/" + bucketName + "/" + fileName + "?authuser=1"; + + makeObjectPublic(projectId, bucketName, fileName); + return "https://storage.googleapis.com/i-go/" + fileName; } catch (IOException e) { throw new RuntimeException(e); } } - + /** + * 设置对象公开访问 + * @param projectId + * @param bucketName + * @param objectName + */ + public static void makeObjectPublic(String projectId, String bucketName, String objectName) { + // String projectId = "your-project-id"; + // String bucketName = "your-bucket-name"; + // String objectName = "your-object-name"; + Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + BlobId blobId = BlobId.of(bucketName, objectName); + storage.createAcl(blobId, Acl.of(Acl.User.ofAllUsers(), Acl.Role.READER)); + + System.out.println( + "Object " + objectName + " in bucket " + bucketName + " was made publicly readable"); + } } -- Gitblit v1.7.1