Google cloud storage 谷歌云存储公共url,用于img src

Google cloud storage 谷歌云存储公共url,用于img src,google-cloud-storage,Google Cloud Storage,首先,我读过,搜索过谷歌,到处都是。但是我找不到解决我问题的办法。我可以上传图片到我的谷歌云存储桶。然后,我想获取公共URL,这样我就可以将其保存到我的mongodb中,并在以后访问我的站点 我这里有一个代码,是用围棋写的 // profile func, that receive filename, and file name, self_link, err := google_storage.Upload(handler.Filename, file) // then after acqu

首先,我读过,搜索过谷歌,到处都是。但是我找不到解决我问题的办法。我可以上传图片到我的谷歌云存储桶。然后,我想获取公共URL,这样我就可以将其保存到我的mongodb中,并在以后访问我的站点

我这里有一个代码,是用围棋写的

// profile func, that receive filename, and file
name, self_link, err := google_storage.Upload(handler.Filename, file)

// then after acquiring the self_link, i update the user
db.UpdateUser(session_id.(string), db.UserUpdate{"ProfileImage": self_link})
问题是,在将文件传递到html时,我无法从我的页面链接访问该文件

我猜,我的链接不是公开的

这是我的oauth配置

config := &oauth.Config{
    ClientId:     clientId,
    ClientSecret: clientSecret,
    Scope:        storage.DevstorageFull_controlScope,
    AuthURL:      "https://accounts.google.com/o/oauth2/auth",
    TokenURL:     "https://accounts.google.com/o/oauth2/token",
    TokenCache:   oauth.CacheFile(cacheFile),
    RedirectURL:  "https://www.example.com/oauth2callback",
    AccessType:    "offline",
}
在授权我的web服务器之后,我可以

// my object setup
object_to_store_data := &storage.Object{Name: fileName}

result, err := service.Objects.Insert(bucketName, storage_data).Media(file).Do()
感谢您的帮助,我是谷歌云存储的新手,现在就去吧


提前感谢

您需要将对象上的ACL设置为
publicRead
。请参阅上的
predefinedAcl
字段。嘿,谢谢你的建议。我现在就试试。目前,我正在阅读已签名的URL。获取已签名的url,然后将其保存以供以后访问。你好,我在golang仍然不太好。但如何将Acl设置为对象?我有object_to_store_data:=&storage.object{Name:fileName}我会编辑我的帖子真的很令人沮丧,我能够理解设置,Acl,但是现在,googleapi:Error 400:Required,Required。。没有任何帮助的错误消息。从昨天开始思考这个问题,阅读文档、示例以及可能的所有内容。我仍然无法获得公共访问权限。您收到的400错误是针对哪个呼叫/代码的?另外,我们还有一个例子,为Go here中的现有对象设置ACL:-该代码不再工作了吗?此外,如果您希望桶中的每个对象都这样,那么可以考虑设置桶的默认对象ACL属性——在这种情况下,每个对象在创建时都将具有ACL,并且无论如何都不必有单独的调用来更改ACL。