我坚持使用Google Cloud Storage和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
有人知道吗?
答案 0 :(得分:0)
哦,我刚刚发现os.create()
也可以创建目录。
这是我的错
inputPath := "/shop_v1/shop_logo.jpeg"
os.create(inputPath)
应用程序将出错,找不到等等。
我只需要删除inputPath变量的第一个斜杠
inputPath := "shop_v1/shop_logo.jpeg"
os.create(inputPath)
现在可以了!。