小编Sim*_*rey的帖子

强制重新测试或禁用测试缓存

问题:

当我运行相同的go测试两次时,第二次运行根本没有完成.结果是第一次运行时缓存的结果.

PASS    
ok      tester/apitests    (cached)
Run Code Online (Sandbox Code Playgroud)

链接

我已经检查过https://golang.org/cmd/go/#hdr-Testing_flags但是没有cli标志用于此目的.

题:

是否有可能强制执行测试以始终运行测试而不是缓存测试结果.

testing go

54
推荐指数
5
解决办法
2万
查看次数

仅对 gcs 使用经过身份验证的网址,而不设置“console.cloud.google.com”引荐来源网址

我希望有人可以帮助我弄清楚如何在 gcs 中使用经过身份验证的 URL。


我想要存档的内容:

  1. 我想向某人发送经过身份验证的 gcs 链接(未预先签名):例如https://storage.cloud.google.com/XXX/happy-simon.png
  2. 该人需要登录他们的 Google 帐户
  3. 如果他们有适当的权限,他们可以下载该文件

问题:

当我尝试访问 GCS 的经过身份验证的 URL 时,它们在浏览器中不起作用,但仅当设置了标头“referer:https: //console.cloud.google.com/”时才起作用。


如何重现:

  1. 上传文件到gcs
  2. 至少授予自己对该文件的读取权限(无论如何,在上传该文件时您应该是所有者)
  3. 尝试通过“经过身份验证的网址”下载 在此输入图像描述

3.1)当我点击谷歌云控制台中的链接时,下载工作没有问题

3.2) 当我复制 url 并在新选项卡中打开它时,出现 403 错误

在控制台上使用curl进行测试,我发现两个调用之间的区别在于-H 'referer: https://console.cloud.google.com/'是否设置了。如果我设置它,来自新选项卡的调用也可以工作。

google-cloud-storage google-cloud-platform

11
推荐指数
0
解决办法
769
查看次数

从 Content-Disposition 标头获取 UTF-8 文件名

当我尝试从 Content-Disposition 标头获取文件名时,go 函数mime.ParseMediaType()失败并出现错误mime: invalid media parameter


我已经发现它适用于正常的文件名格式:

attachment; filename="Geotag_Stamp%20(1)%20(1).jpg"<- 作品

但是对于 UTF-8 文件名(在rfc6266中定义),它会失败并出现第一段中给出的错误:

attachment; filename*=UTF-8''"Geotag_Stamp%20(1)%20(1).jpg"<- 失败


这是我的代码:

package main

import (
    "fmt"
    "mime"
)

func main() {
    d, params, err := mime.ParseMediaType(`attachment; filename="Geotag_Stamp%20(1)%20(1).jpg"`)
    if err != nil {
        fmt.Println("**Normal Filename error:", err)
    }
    
    fmt.Println("Normal:", d, params)
    d, params, err = mime.ParseMediaType(`attachment; filename*=UTF-8''"Geotag_Stamp%20(1)%20(1).jpg"`)
    if err != nil {
        fmt.Println("**UTF-8 Filename error:", err)
    }
    fmt.Println("UTF-8",d, params)
}
Run Code Online (Sandbox Code Playgroud)

在操场上


stdlib 是否可能不支持 Content-Disposition->Filename 的 UTF-8 版本?

mime go

1
推荐指数
1
解决办法
4247
查看次数