Tavern - 不能 post 文件使用 aws 预签名 url
Tavern - can't post files using aws pre-signed url
我是 Tavern 的新手,我正在为 AWS API 网关应用程序实施测试。
案例描述和正常方法
就我而言,我使用预签名 URLs 直接将文件上传到 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
试试这个:
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
我是 Tavern 的新手,我正在为 AWS API 网关应用程序实施测试。
案例描述和正常方法
就我而言,我使用预签名 URLs 直接将文件上传到 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
试试这个:
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