关键词:
【中文标题】Golang谷歌存储可恢复上传HTTP 401【英文标题】:Golang google storage resumable upload HTTP 401 【发布时间】:2015-03-30 17:27:02 【问题描述】:嘿,我正在尝试实现可恢复的上传到云存储。
但我得到一个 Status:"401 Unauthorized", StatusCode:401
我假设它与承载者有关,但我想不出另一种发送承载令牌的方法。
我已经能够使用 GetClinet 方法删除文件。
func GetClinet(c endpoints.Context) *http.Client
cli := &http.Client
Transport: &oauth2.Transport
Source: google.AppEngineTokenSource(c, storage.ScopeReadWrite),
Base: &urlfetch.TransportContext: c,
,
return cli
client := GetClinet(con)
url := "https://storage.googleapis.com/bucketName/file.txt"
b := r.Header.Get("Authorization") //parse the bearer from user request
r, err = http.NewRequest("POST", url, nil)
r.Header.Add("Content-Type", "text/plain")
r.Header.Add("Content-Length", "0")
r.Header.Add("x-goog-resumable", "start")
r.Header.Add("Authorization", b)
resp, err := client.Do(r)
【问题讨论】:
我不确定“从用户请求中解析承载”是否意味着您正在运行网络服务器并且您想要访问用户的 Google Cloud Storage 帐户。如果是这样,您可能想熟悉一下:developers.google.com/accounts/docs/OAuth2WebServer @rein 仅针对该令牌的学习曲线就很高,在这种情况下文档还不够好,另一方面,代码更有用github.com/johnbalvin/google-cloud-go/blob/master/storage/… 【参考方案1】:我也遇到了类似的问题,不知道你的情况是不是跟我一样。我的目标是
-
用户客户端将元数据上传到我的服务器
服务器进行身份验证并存储在数据库中
服务器向 Google Cloud Storage 请求
resumabale upload url
服务器返回url给客户端
客户端使用 url 将媒体上传到 GCS
我也收到了 401 未经授权的退货。也许我没有正确设置标题?或者storage.SignedURL
不能正确处理可恢复的上传...?
我已经能够使用服务帐户 PEM 文件上传文件
func setGcsFile(c context.Context, fileId string, content []byte) error
expiration := time.Now().Add(time.Second * 30) //expire in 30 seconds
data, err = ioutil.ReadFile(serviceAccountPEMFilename)
if err != nil
fmt.Printf("error: %v", err)
panic(err)
log.Debugf(c, "Getting upload url")
opts := &storage.SignedURLOptions
GoogleAccessID: googleAccessID,
PrivateKey: data,
Method: "PUT",
Expires: expiration,
putURL, err := storage.SignedURL(bucket, fileId, opts)
if err != nil
log.Debugf(c, "%v", err)
return err
log.Debugf(c, "PUT URL : %v\n", putURL)
client := urlfetch.Client(c)
req, err := http.NewRequest("PUT", putURL, bytes.NewBuffer(content))
res, err := client.Do(req)
if err != nil
log.Debugf(c, "%v", err)
return err
res.Body.Close()
log.Debugf(c, "Response Code: %s\n", res.Status)
return nil
我正在考虑下一步拉取和修改storage.SignedURL
函数。
【讨论】:
可恢复上传的“临时文件”是不是计入每月存储费? (谷歌云存储)
】可恢复上传的“临时文件”是不是计入每月存储费?(谷歌云存储)【英文标题】:Dothe"tempfiles"ofresumableuploadscountinthemonthlystoragefee?(GoogleCloudStorage)可恢复上传的“临时文件”是否计入每月存储费?(谷歌云存储)【发... 查看详情
没有可恢复上传的“Access-Control-Allow-Origin”标头
...问题描述】:我们正在通过我们的AppEngine应用程序中的云存储JSONAPI生成可恢复的上传URL,该应用程序可用于移动设备和网络应用程序。在web应用程序中,使用XmlHt 查看详情
谷歌云存储:401 未经授权的错误
】谷歌云存储:401未经授权的错误【英文标题】:GoogleCloudStorage:401unauthorizederror【发布时间】:2022-01-1820:47:06【问题描述】:我的目标是将文件从cloudhub上传到GCP存储桶,我正在使用服务帐户,我唯一的选择是使用JsonKey文件。这... 查看详情
尝试使用 gcs json api、axios、vue3、quasar 和 node14 执行单个块可恢复上传到谷歌云存储时出现 cors 错误
...、axios、vue3、quasar和node14执行单个块可恢复上传到谷歌云存储时出现cors错误【英文标题】:Gettingcorserrorswhentryingtoperformasinglechunkresumableuploadtogooglecloudstorageusinggcsjsonapi,axios,vue3,quasarandnode14【发布时间】:2022-01-1707:46: 查看详情
golang http 恐慌的全局恢复处理程序
】golanghttp恐慌的全局恢复处理程序【英文标题】:globalrecoverhandlerforgolanghttppanic【发布时间】:2015-04-2900:26:53【问题描述】:我想创建全局错误处理程序以通过电子邮件发送。packagemainimport("github.com/gorilla/mux""log""net/http")funcmain()r... 查看详情
在 bintray 上上传二进制文件时 HTTP/1.1 401 未经授权
】在bintray上上传二进制文件时HTTP/1.1401未经授权【英文标题】:HTTP/1.1401Unauthorizedwhenuploadingbinaryonbintray【发布时间】:2017-02-1900:18:59【问题描述】:我正在尝试从androidstudio上传一个android库模块,后面是这个博客:https://inthecheese... 查看详情
springboot可恢复文件上传tus-java-client库的使用(代码片段)
1、说明tus是一种基于HTTP的可恢复文件上传协议。可恢复意味着上传可以随时中断,并且可以恢复,而无需再次重新上传以前的数据。如果用户想要暂停,中断可能会自动发生,或者在网络问题或服务器中断的情... 查看详情
GCS 可恢复上传速度
】GCS可恢复上传速度【英文标题】:GCSresumableuploadsspeed【发布时间】:2014-10-2719:06:32【问题描述】:我有一个关于使用可恢复上传到GoogleCloudStorage的上传速度的问题。我编写了一个桌面java客户端来将大文件上传到GCS(它有一些... 查看详情
createWriteStream Node.js 上的可恢复和验证
...间】:2021-12-2915:04:46【问题描述】:我一直在使用Google云存储api上传一些文件。我在使用上传请求时遇到了sockethangup的一些错误。经过一番搜索,我遇到了Error:sockethangupcode:\'ECONNRESE 查看详情
将 Tus 可恢复文件上传协议与 Gin-Gonic CORS 问题集成
】将Tus可恢复文件上传协议与Gin-GonicCORS问题集成【英文标题】:IntegratingTusResumableFileUploadProtocolwithGin-GonicCORSissue【发布时间】:2021-01-0703:57:45【问题描述】:我在这里查看了与Gin和Tus的CORS问题相关的类似问题;没有解决我目前... 查看详情
上传的数据在云端的怎么查看,保存在啥位置?
...用户可登录天翼云Web端直接通过联系人来查看;2)相册:存储在我的图片/机型相册目录中;3)短信、应用和通话记录:存储在我的应用/手机备份/机型名称/备份目录中。备注:短信、应用和通话记录在云端的存储内容,无法直接... 查看详情
使用带有 Gmail API 的可恢复上传附加文件
】使用带有GmailAPI的可恢复上传附加文件【英文标题】:AttachingafileusingResumableuploadw/GmailAPI【发布时间】:2017-06-1108:59:23【问题描述】:我正在尝试使用Gmail的可恢复选项将附件上传到电子邮件。文档参考:https://developers.google.com/... 查看详情
gitpush上传代码到gitlab上,报错401或403
...码托管平台,采用ssh方式连接gitlab,在客户机上产生公钥上传到gitlab的SSH-Keys里,则gitclone下载和gitpush上传都没问题,这种方式很安全。后来应开发同事要求采用http方式连接gitlab,那么首先将project工程的“VisibilityLevel”改为“Pu... 查看详情
如何使用 Golang net/http 服务器接收上传的文件?
】如何使用Golangnet/http服务器接收上传的文件?【英文标题】:HowcanIreceiveanuploadedfileusingaGolangnet/httpserver?【发布时间】:2017-04-0217:32:54【问题描述】:我在玩Mux和net/http。最近,我正在尝试使用一个带有一个端点的简单服务器来... 查看详情
http常见状态码
HTTP400-请求无效HTTP401.1-未授权:登录失败HTTP401.2-未授权:服务器配置问题导致登录失败HTTP401.3-ACL禁止访问资源HTTP401.4-未授权:授权被筛选器拒绝HTTP401.5-未授权:ISAPI或CGI授权失败HTTP403-禁止访问HTTP403-对Internet服务管理器(HTML)的... 查看详情
上传golang版本sdk
...是不是因为我的callbackUrl(随便写的)写错导致的。上传golang版本SDK>>golang这个答案描述的挺清楚的:http://www.goodpm.net/postreply/golang/1010000008901091/上传golang版本SDK.html 查看详情
http状态码介绍
HTTP400–请求无效HTTP401.1–未授权:登录失败HTTP401.2–未授权:服务器配置问题导致登录失败HTTP401.3–ACL禁止访问资源HTTP401.4–未授权:授权被筛选器拒绝HTTP401.5–未授权:ISAPI或CGI授权失败HTTP403–禁止访问HTTP403–对Internet服务... 查看详情
如何使用谷歌应用引擎(java)上传和存储图像
】如何使用谷歌应用引擎(java)上传和存储图像【英文标题】:Howtouploadandstoreanimagewithgoogleappengine(java)【发布时间】:2010-12-0313:43:03【问题描述】:我正在寻找将图像(文件)上传和存储到GAE(java)的最简单方法。谷歌搜索了几... 查看详情