本地存储绑定规范
关于本地存储绑定组件的详细文档
配置
To set up the Local Storage binding, create a component of type bindings.localstorage
. See this guide on how to create and apply a binding configuration.
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: <NAME>
namespace: <NAMESPACE>
spec:
type: bindings.localstorage
version: v1
metadata:
- name: rootPath
value: <string>
元数据字段规范
字段 | 必填 | 绑定支持 | 详情 | Example |
---|---|---|---|---|
rootPath | Y | Input / Output | The root path anchor to which files can be read / saved | “/temp/files” |
绑定支持
字段名为 ttlInSeconds
。
create
: Create fileget
: Get filelist
: List filesdelete
: Delete file
Create file
To perform a create file operation, invoke the Local Storage 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\": { \"fileName\": \"my-test-file.txt\" } }" \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
curl -d '{ "operation": "create", "data": "Hello World", "metadata": { "fileName": "my-test-file.txt" } }' \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
Save a binary file
To upload a file, encode it as Base64. The binding should automatically detect the Base64 encoding.
curl -d "{ \"operation\": \"create\", \"data\": \"YOUR_BASE_64_CONTENT\", \"metadata\": { \"fileName\": \"my-test-file.jpg\" } }" http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
curl -d '{ "operation": "create", "data": "YOUR_BASE_64_CONTENT", "metadata": { "fileName": "my-test-file.jpg" } }' \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
响应
响应体将包含以下JSON:
{
"fileName": "<filename>"
}
Get file
To perform a get file operation, invoke the Local Storage binding with a POST
method and the following JSON body:
{
"operation": "get",
"metadata": {
"fileName": "myfile"
}
}
Example
curl -d '{ \"operation\": \"get\", \"metadata\": { \"fileName\": \"myfile\" }}' http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
curl -d '{ "operation": "get", "metadata": { "fileName": "myfile" }}' \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
响应
The response body contains the value stored in the file.
List files
To perform a list files operation, invoke the Local Storage binding with a POST
method and the following JSON body:
{
"operation": "list"
}
If you only want to list the files beneath a particular directory below the rootPath
, specify the relative directory name as the fileName
in the metadata.
{
"operation": "list",
"metadata": {
"fileName": "my/cool/directory"
}
}
Example
curl -d '{ \"operation\": \"list\", \"metadata\": { \"fileName\": \"my/cool/directory\" }}' http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
curl -d '{ "operation": "list", "metadata": { "fileName": "my/cool/directory" }}' \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
响应
The response is a JSON array of file names.
Delete file
To perform a delete file operation, invoke the Local Storage binding with a POST
method and the following JSON body:
{
"operation": "delete",
"metadata": {
"fileName": "myfile"
}
}
Example
curl -d '{ \"operation\": \"delete\", \"metadata\": { \"fileName\": \"myfile\" }}' http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
curl -d '{ "operation": "delete", "metadata": { "fileName": "myfile" }}' \
http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
响应
An HTTP 204 (No Content) and empty body will be returned if successful.
元数据信息
By default the Local Storage output binding auto generates a UUID as the file name. It is configurable in the metadata property of the message.
{
"data": "file content",
"metadata": {
"fileName": "filename.txt"
},
"operation": "create"
}