【问题标题】:Tavern - can't post files using aws pre-signed url酒馆 - 无法使用 aws 预签名 url 发布文件
【发布时间】:2019-10-09 12:10:24
【问题描述】:

我是 Tavern 的新手,我正在为 AWS API Gateway 应用程序实施测试。

案例描述及常规处理

就我而言,我使用预签名 URL 将文件直接上传到 S3 存储桶。预签名 URL 由以下属性组成:

url = 'https://<bucket>.s3.amazonaws.com/' 

fields:
  key=<filename>.zip 
  x-amz-algorithm=*** 
  x-amz-credential=***  
  x-amz-date=*** 
  x-amz-security-token=*** 
  policy=*** 
  x-amz-signature=*** 

在正常的 cURL 请求中,这将被如下使用:

curl -v \
-F key=<filename>.zip \
-F x-amz-algorithm=*** \
-F x-amz-credential=*** \
-F x-amz-date=*** \
-F x-amz-security-token=*** \
-F policy=*** \
-F x-amz-signature=*** \
-F file=@<filename>.zip \
'https://<bucket>.s3.amazonaws.com/'

实施的测试

如您所见,有必要使用cURL-F 标志,该标志形成multipart/form-data POST 请求。

Tavern 方法中,正如我所读到的,-F 等同于files,因此如下:

stages:
  - name: UPLOAD A FILE TO S3
    request:
      method: POST
      url: "https:/<bucket>.s3.amazonaws.com/"
      files: 
          key: target.zip 
          x-amz-algorithm: ***
          x-amz-credential: *** 
          x-amz-date: ***
          x-amz-security-token: *** 
          policy: *** 
          x-amz-signature: ***
          file: '@target.zip'
    response:
      status_code: 200

错误

但它因错误而失败:

Error: <value of x-amz-algorithm> file not found

因此它将字段视为文件,因此失败了。

是否可以在 Tavern 中实现此案例,所以我的实现在某处有误,或者这在 Tavern 中还不可能?

亲切的问候,

Rshad

【问题讨论】:

    标签: post multipartform-data pre-signed-url tavern


    【解决方案1】:

    试试这个:

    stages:
      - name: UPLOAD A FILE TO S3
        request:
          method: POST
          url: "https:/<bucket>.s3.amazonaws.com/"
          data: 
              key: target.zip 
              x-amz-algorithm: ***
              x-amz-credential: *** 
              x-amz-date: ***
              x-amz-security-token: *** 
              policy: *** 
              x-amz-signature: ***
          files:
              file: "target.zip"
        response:
          status_code: 200
    

    【讨论】:

    • 嗨,我的朋友@Ashaman!我发誓我测试了这个解决方案,但是今天早上没有用,现在也没有。但后来我想,也许预签名的 URL 不再有效,因为它在 3 小时后过期,然后尝试使用新的预签名 URL,它确实有效。非常感谢!
    猜你喜欢
    • 2020-06-06
    • 2018-02-01
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多