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