From 07db109f450b6c8a78ac69da49a8f9a893da20c3 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期一, 02 九月 2024 17:53:02 +0800
Subject: [PATCH] 修改bug和翻译

---
 ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java |   30 +++++++++++---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java       |   28 +++++++++++---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java                   |    6 +-
 3 files changed, 48 insertions(+), 16 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..57d8338 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,7 @@
 package com.stylefeng.guns.modular.system.util;
 
 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;
@@ -34,8 +31,9 @@
 		// 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();
+		Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
 		BlobId blobId = BlobId.of(bucketName, fileName);
 		BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();
 		
@@ -59,12 +57,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");
+	}
 	
 }
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
index 587e5b2..7ba230c 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -1181,12 +1181,12 @@
 
     @ResponseBody
     @RequestMapping("/base/user/image")
-    public String image(@RequestPart("file") MultipartFile file) {
+    public ResultUtil image(@RequestPart("file") MultipartFile file) {
         try {
             String pictureName = GoogleCloudStorageUtil.upload(file);
-            return pictureName;
+            return ResultUtil.success(pictureName);
         } catch (Exception e1) {
-            return null;
+            return ResultUtil.runErr();
         }
     }
 
diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java
index f9973a1..6a91d7c 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GoogleCloudStorageUtil.java
@@ -1,9 +1,6 @@
 package com.stylefeng.guns.modular.system.util;
 
-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;
@@ -30,8 +27,9 @@
 		// 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();
+		Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
 		BlobId blobId = BlobId.of(bucketName, fileName);
 		BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();
 		
@@ -55,12 +53,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