【发布时间】: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