Golang 使用特定路径将图片上传到 GCS
Golang upload image to GCS with specific path
我坚持使用 Google 云存储和 os.create()
这是我的示例代码
func upload(w http.ResponseWriter, r *http.Request) {
// some process request msg, decode base64 to image byte
// create image file in current directory with os.create()
//
path := os.create("shop_logo.jpeg")
bucket := client.Bucket("myBucket")
write := bucket.Object(path).NewWriter(ctx)
}
用目录创建文件
func upload(w http.ResponseWriter, r *http.Request) {
// some process request msg, decode base64 to image byte
// create image file in current directory with os.create()
//
path := os.create("home/../project/repo/shop_logo.jpeg") //absolute path
bucket := client.Bucket("myBucket")
write := bucket.Object(path).NewWriter(ctx)
}
实际上一切正常,比如 mybucket/shop_logo.jpeg
但是我想组织存储桶路径,例如 mybucket/shop_v1/shop_logo.jpeg
但是我用了 os.create()
比如 os.create("shop_v1/shop_logo.jpeg)
不能用,貌似这个功能不能创建文件夹。
但是当我使用 绝对路径 时它起作用了。喜欢 os.create("/home/project/shop_v1/shop_logo.jpeg)
问题是 bucket.Object("path/to/image_file")
需要文件的路径。
所以如果我使用绝对路径上传它。
我的桶将是 myBucket/home/project/shop_v1/shop_logo.jpeg
.
但我期待的是mybucket/shop_v1/shop_logo.jpeg
有人知道吗?
哦,我刚刚发现 os.create()
也可以创建目录。
这是我的错
inputPath := "/shop_v1/shop_logo.jpeg"
os.create(inputPath)
应用程序会出错,找不到等等。
我只需要 删除 inputPath 变量
的第一个斜杠
inputPath := "shop_v1/shop_logo.jpeg"
os.create(inputPath)
现在可以了!
我坚持使用 Google 云存储和 os.create()
这是我的示例代码
func upload(w http.ResponseWriter, r *http.Request) {
// some process request msg, decode base64 to image byte
// create image file in current directory with os.create()
//
path := os.create("shop_logo.jpeg")
bucket := client.Bucket("myBucket")
write := bucket.Object(path).NewWriter(ctx)
}
用目录创建文件
func upload(w http.ResponseWriter, r *http.Request) {
// some process request msg, decode base64 to image byte
// create image file in current directory with os.create()
//
path := os.create("home/../project/repo/shop_logo.jpeg") //absolute path
bucket := client.Bucket("myBucket")
write := bucket.Object(path).NewWriter(ctx)
}
实际上一切正常,比如 mybucket/shop_logo.jpeg
但是我想组织存储桶路径,例如 mybucket/shop_v1/shop_logo.jpeg
但是我用了 os.create()
比如 os.create("shop_v1/shop_logo.jpeg)
不能用,貌似这个功能不能创建文件夹。
但是当我使用 绝对路径 时它起作用了。喜欢 os.create("/home/project/shop_v1/shop_logo.jpeg)
问题是 bucket.Object("path/to/image_file")
需要文件的路径。
所以如果我使用绝对路径上传它。
我的桶将是 myBucket/home/project/shop_v1/shop_logo.jpeg
.
但我期待的是mybucket/shop_v1/shop_logo.jpeg
有人知道吗?
哦,我刚刚发现 os.create()
也可以创建目录。
这是我的错
inputPath := "/shop_v1/shop_logo.jpeg"
os.create(inputPath)
应用程序会出错,找不到等等。
我只需要 删除 inputPath 变量
inputPath := "shop_v1/shop_logo.jpeg"
os.create(inputPath)
现在可以了!