The documentation you are viewing is for Dapr v1.5 which is an older version of Dapr. For up-to-date documentation, see the latest version.
AWS S3 binding spec
配置
To setup AWS S3 binding create a component of type bindings.aws.s3
. 请参阅本指南,了解如何创建和应用绑定配置。
See Authenticating to AWS for information about authentication-related attributes
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
namespace: <NAMESPACE>
spec:
type: bindings.aws.s3
version: v1
metadata:
- name: bucket
value: mybucket
- name: region
value: us-west-2
- name: endpoint
value: s3-us-west-2.amazonaws.com
- name: accessKey
value: *****************
- name: secretKey
value: *****************
- name: sessionToken
value: mysession
- name: decodeBase64
value: <bool>
- name: encodeBase64
value: <bool>
- name: forcePathStyle
value: <bool>
Warning
以上示例将密钥明文存储, 更推荐的方式是使用 Secret 组件, 这里。元数据字段规范
字段 | 必填 | 绑定支持 | 详情 | 示例 |
---|---|---|---|---|
bucket | Y | 输出 | The name of the S3 bucket to write to | "bucket" |
region | Y | 输出 | The specific AWS region | "us-east-1" |
终结点 | N | 输出 | The specific AWS endpoint | "s3-us-east-1.amazonaws.com" |
accessKey | Y | 输出 | 要访问此资源的 AWS 访问密钥 | "key" |
secretKey | Y | 输出 | 要访问此资源的 AWS 密钥访问 Key | "secretAccessKey" |
sessionToken | N | 输出 | 要使用的 AWS 会话令牌 | "sessionToken" |
forcePathStyle | N | 输出 | Currently Amazon S3 SDK supports virtual hosted-style and path-style access. true is path-style format like https://<endpoint>/<your bucket>/<key> . false is hosted-style format like https://<your bucket>.<endpoint>/<key> . Defaults to false |
true , false |
decodeBase64 | N | 输出 | Configuration to decode base64 file content before saving to bucket storage. (保存有二进制内容的文件时)。 true is the only allowed positive value. Other positive variations like "True", "1" are not acceptable. Defaults to false |
true , false |
encodeBase64 | N | 输出 | Configuration to encode base64 file content before return the content. (In case of opening a file with binary content). true is the only allowed positive value. Other positive variations like "True", "1" are not acceptable. Defaults to false |
true , false |
绑定支持
字段名为 ttlInSeconds
。
create
: Create fileget
: Get filedelete
: Delete filelist
: List file
Create file
To perform a create operation, invoke the AWS S3 binding with a POST
method and the following JSON body:
注意:默认情况下,会随机生成一个UUID。 参见下面所示的支持的元数据设置名称
{
"operation": "create",
"data": "YOUR_CONTENT"
}
示例
Save text to a random generated UUID file
在Windows上,使用cmd提示符(PowerShell有不同的转义机制)。
curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\" }" http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
curl -d '{ "operation": "create", "data": "Hello World" }' \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
Save text to a specific file
curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\", \"metadata\": { \"key\": \"my-test-file.txt\" } }" \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
curl -d '{ "operation": "create", "data": "Hello World", "metadata": { "key": "my-test-file.txt" } }' \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
Save a file to a object
要上传一个文件,将其编码为Base64,并让绑定知道要对它进行反序列化:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
namespace: <NAMESPACE>
spec:
type: bindings.aws.s3
version: v1
metadata:
- name: bucket
value: mybucket
- name: region
value: us-west-2
- name: endpoint
value: s3-us-west-2.amazonaws.com
- name: accessKey
value: *****************
- name: secretKey
value: *****************
- name: sessionToken
value: mysession
- name: decodeBase64
value: <bool>
- name: forcePathStyle
value: <bool>
然后你就可以像平常一样上传了:
curl -d "{ \"operation\": \"create\", \"data\": \"YOUR_BASE_64_CONTENT\", \"metadata\": { \"key\": \"my-test-file.jpg\" } }" http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
curl -d '{ "operation": "create", "data": "YOUR_BASE_64_CONTENT", "metadata": { "key": "my-test-file.jpg" } }' \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
响应
响应体将包含以下JSON:
{
"location":"https://<your bucket>.s3.<your region>.amazonaws.com/<key>",
"versionID":"<version ID if Bucket Versioning is enabled"
}
Get object
To perform a get file operation, invoke the AWS S3 binding with a POST
method and the following JSON body:
{
"operation": "get",
"metadata": {
"key": "my-test-file.txt"
}
}
The metadata parameters are:
key
- the name of the object
示例
curl -d '{ \"operation\": \"get\", \"metadata\": { \"key\": \"my-test-file.txt\" }}' http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
curl -d '{ "operation": "get", "metadata": { "key": "my-test-file.txt" }}' \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
响应
The response body contains the value stored in the object.
Delete object
To perform a delete object operation, invoke the AWS S3 binding with a POST
method and the following JSON body:
{
"operation": "delete",
"metadata": {
"key": "my-test-file.txt"
}
}
The metadata parameters are:
key
- the name of the object
示例
Delete object
curl -d '{ \"operation\": \"delete\", \"metadata\": { \"key\": \"my-test-file.txt\" }}' http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
curl -d '{ "operation": "delete", "metadata": { "key": "my-test-file.txt" }}' \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
响应
An HTTP 204 (No Content) and empty body will be retuned if successful.
List objects
To perform a list object operation, invoke the S3 binding with a POST
method and the following JSON body:
{
"operation": "list",
"data": {
"maxResults": 10,
"prefix": "file",
"marker": "hvlcCQFSOD5TD",
"delimiter": "i0FvxAn2EOEL6"
}
}
The data parameters are:
maxResults
- (optional) sets the maximum number of keys returned in the response. By default the action returns up to 1,000 key names. The response might contain fewer keys but will never contain more.prefix
- (optional) limits the response to keys that begin with the specified prefix.marker
- (optional) marker is where you want Amazon S3 to start listing from. Amazon S3 starts listing after this specified key. Marker can be any key in the bucket. The marker value may then be used in a subsequent call to request the next set of list items.delimiter
- (optional) A delimiter is a character you use to group keys.
响应
The response body contains the list of found objects.
The list of objects will be returned as JSON array in the following form:
{
"CommonPrefixes": null,
"Contents": [
{
"ETag": "\"7e94cc9b0f5226557b05a7c2565dd09f\"",
"Key": "hpNdFUxruNuwm",
"LastModified": "2021-08-16T06:44:14Z",
"Owner": {
"DisplayName": "owner name",
"ID": "owner id"
},
"Size": 6916,
"StorageClass": "STANDARD"
}
],
"Delimiter": "",
"EncodingType": null,
"IsTruncated": true,
"Marker": "hvlcCQFSOD5TD",
"MaxKeys": 1,
"Name": "mybucketdapr",
"NextMarker": "hzaUPWjmvyi9W",
"Prefix": ""
}
相关链接
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.