Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
erosXXX
uni-app
提交
94743ce5
U
uni-app
项目概览
erosXXX
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
94743ce5
编写于
3月 24, 2020
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: uniCloud tencent
上级
d9b46118
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
273 addition
and
150 deletion
+273
-150
docs/uniCloud/_sidebar.md
docs/uniCloud/_sidebar.md
+2
-4
docs/uniCloud/authentication.md
docs/uniCloud/authentication.md
+19
-28
docs/uniCloud/cf-authentication.md
docs/uniCloud/cf-authentication.md
+2
-1
docs/uniCloud/http.md
docs/uniCloud/http.md
+16
-3
docs/uniCloud/policy-tcb.md
docs/uniCloud/policy-tcb.md
+47
-110
docs/uniCloud/storage.md
docs/uniCloud/storage.md
+187
-4
未找到文件。
docs/uniCloud/_sidebar.md
浏览文件 @
94743ce5
...
...
@@ -18,10 +18,8 @@
*
[
示例及源码
](
uniCloud/resource.md
)
*
[
常见问题
](
uniCloud/faq.md
)
<!-- * [云存储](uniCloud/cf-storage.md) -->
<!--* [身份认证](uniCloud/cf-authentication.md) -->
<!-- * [登录授权](uniCloud/authentication.md) -->
<!-- ** 权限管理-->
<!-- * [腾讯云](uniCloud/policy-tcb.md) -->
*
权限管理
*
[
腾讯云
](
uniCloud/policy-tcb.md
)
<!-- * [阿里云](uniCloud/policy-ali.md) -->
*
[
更新日志
](
uniCloud/release.md
)
...
...
docs/uniCloud/authentication.md
浏览文件 @
94743ce5
**本章内容仅针对腾讯云开发,阿里侧暂不支持**
**腾讯云侧必须以任意登录方式登录之后才可以访问云端资源。开发者在控制台开启匿名登录之后,可以在客户端调用匿名登录来获取访问云端资源的权限**
## 名词解释
-
Ticket(票据):由云函数调用
`createTicket`
返回的票据,用于客户端使用票据进行登录操作
-
匿名登录:用户未进行登录操作的状态
-
短期访问令牌:用户身份的凭证(access token),调用
`signInWithTicket`
或者
`linkAndRetrieveDataWithTicket`
之后会自动进行存储
## uniCloud.auth()
...
...
@@ -12,7 +16,7 @@
const
auth
=
uniCloud
.
auth
()
```
## auth.signInAnonymously()
<!--
## auth.signInAnonymously()
进行匿名登录,详细描述参考
[
匿名登录
](
#匿名登录
)
...
...
@@ -21,8 +25,9 @@ const auth = uniCloud.auth()
```
js
const
auth
=
uniCloud
.
auth
()
auth
.
signInAnonymously
()
```
```
-->
<span
id=
"signinwithticket"
></span>
## auth.signInWithTicket()
使用,详细描述参考
[
登录流程
](
#cloudtoken
)
...
...
@@ -78,21 +83,22 @@ auth.signInWithTicket('YourTicket').then(() => {
})
```
## 自定义登录
<span
id=
"cloudtoken"
></span>
## 登录流程
`uniCloud`
允许开发者使用特定的登录凭据
`Ticket`
对用户进行身份认证。开发者可以使用
`服务端 SDK`
来创建
`Ticket`
,并且将
`
token
`
传入到应用内,然后调用
`signInWithTicket()`
获得登录态。
`uniCloud`
允许开发者使用特定的登录凭据
`Ticket`
对用户进行身份认证。开发者可以使用
`服务端 SDK`
来创建
`Ticket`
,并且将
`
Ticket
`
传入到应用内,然后调用
`signInWithTicket()`
获得登录态。
### 获取私钥文件
###
第一步:
获取私钥文件
登录uniCloud控制台
[
uniCloud控制台
](
http://unicloud.dcloud.net.cn/
)
,在
`用户管理页面`
中,点击“登录设置”,然后
**生成并下载私钥**
:
![
uniCloud下载私钥
](
https://img.cdn.aliyun.dcloud.net.cn/uni-app/uniCloud/auth-custom.png
)
### 使用云函数创建登录凭据
###
第二步:
使用云函数创建登录凭据
获取私钥文件
之后,重命名为
`credentials.json`
放在云函数同级目录
即可
获取私钥文件
(
`credentials.json`
)之后,放在需要生成
`Ticket`
的云函数内
`index.js`
同级
即可
`服务端 SDK`
内置了生成
`Ticket`
的接口,开发者需要提供一个自定义的
`customUserId`
作为用户的
唯一身份标识
。
`Ticket`
有效期为
**5分钟**
,过期则失效。
`服务端 SDK`
内置了生成
`Ticket`
的接口,开发者需要提供一个自定义的
`customUserId`
作为用户的
**唯一身份标识**
。
`Ticket`
有效期为
**5分钟**
,过期则失效。
每个用户的
`customUserId`
不能相同,每次用户重新登录时,原有的登录态将会失效。
...
...
@@ -132,7 +138,7 @@ tcb.init({
});
```
-->
### 客户端上使用Ticket登录
###
第三步:
客户端上使用Ticket登录
创建
`Ticket`
之后,开发者应将
`Ticket`
发送至客户端,然后使用
`客户端SDK`
提供的
`signInWithTicket()`
登录
`uniCloud`
:
...
...
@@ -146,24 +152,9 @@ auth.signInWithTicket(ticket).then(() => {
## 匿名登录
uniCloud允许开发者使用匿名登录的方式进行静默授权,可以避免强制登录。在匿名状态下可正常的调用uniCloud的资源,开发者同时可以配合安全规则针对匿名用户制定对应的访问限制。
### 开启匿名登录授权
登录uniCloud控制台
[
uniCloud控制台
](
http://unicloud.dcloud.net.cn/
)
,在
`用户管理页面`
中,点击“登录设置”,点击“登录设置”,然后在“匿名登录”一栏打开/关闭可用状态。
![
uniCloud匿名登录
](
https://img.cdn.aliyun.dcloud.net.cn/uni-app/uniCloud/auth-anonymously.png
)
### 客户端进行匿名登录
```
js
await
auth
.
signInAnonymously
().
catch
(
err
=>
{
// 登录失败会抛出错误
});
// 匿名登录成功检测登录状态isAnonymous字段为true
const
loginState
=
await
auth
.
getLoginState
();
console
.
log
(
loginState
.
isAnonymous
)
// true
```
#### 匿名用户重新登录
匿名用户如果要重新使用开发者提供的身份登录,可以调用
`auth.signInWithTicket`
来进行。
[
参考
](
#
客户端上使用Ticket登录
)
匿名用户如果要重新使用开发者提供的身份登录,可以调用
`auth.signInWithTicket`
来进行。
[
参考
](
#
signinwithticket
)
#### 匿名用户转化为正式用户
目前uniCloud支持将匿名用户转化为正式用户,此转正用户将会继承匿名用户在云端创建的资源,流程如下:
...
...
@@ -195,7 +186,7 @@ uniCloud.on('loginStateExpire', () => {
JS SDK 会在登录态生效期间,自动刷新和维护短期访问令牌(access token),每次成功刷新时会触发此事件。
对于两种登录态并存(uniCloud、自身业务登录态)的
Web
应用,这个事件可以用于同步登录态之间的状态。
对于两种登录态并存(uniCloud、自身业务登录态)的应用,这个事件可以用于同步登录态之间的状态。
```
js
uniCloud
.
on
(
'
refreshAccessToken
'
,
()
=>
{
...
...
@@ -207,7 +198,7 @@ uniCloud.on('refreshAccessToken', () => {
`shouldRefreshAccessToken`
接收一个
`callback`
函数,并且会在刷新短期访问令牌前调用此
`callback`
函数,根据返回值决定是否要刷新短期访问令牌。
对于两种登录态并存(uniCloud、自身业务登录态)的
Web
应用,可以在
`callback`
内判断自身业务登录态是否失效,从而决定是否续期 uniCloud 的短期访问令牌。
对于两种登录态并存(uniCloud、自身业务登录态)的应用,可以在
`callback`
内判断自身业务登录态是否失效,从而决定是否续期 uniCloud 的短期访问令牌。
```
js
auth
.
shouldRefreshAccessToken
(()
=>
{
...
...
docs/uniCloud/cf-authentication.md
浏览文件 @
94743ce5
...
...
@@ -27,6 +27,7 @@ const {
const
IP
=
auth
.
getClientIP
()
```
<span
id=
"createticket"
></span>
### auth.createTicket(String customUserId, Object createTicketOptions)
开发者可以使用云函数创建登录凭证,提供给客户端进行登录操作。
[
详见
](
uniCloud/authentication.md#自定义登录
)
...
...
@@ -43,5 +44,5 @@ let customUserId = '123456';
const
ticket
=
auth
.
createTicket
(
customUserId
,
{
refresh
:
10
*
60
*
1000
// 每十分钟刷新一次登录态, 默认为一小时
});
// 然后把 ticket 发送给客户端
// 然后把 ticket 发送给客户端
,由客户端调用auth.signInWithTicket()使用
```
docs/uniCloud/http.md
浏览文件 @
94743ce5
...
...
@@ -99,7 +99,7 @@ $ curl https://${spaceId}.service.tcloudbase.com/${path}
```
使用POST请求
`https://${spaceId}.service.tcloudbase.com/${functionPath}`
,云函数接收到的
`event`
为请求发送的数据
使用POST请求
`https://${spaceId}.service.tcloudbase.com/${functionPath}`
,云函数接收到的
`event`
为请求发送的数据
,
**uni.request默认content-type为application/json**
```
// 以uni.request为例
...
...
@@ -115,8 +115,21 @@ uni.request({
}
})
// 云函数收到的event为
{a: 1, b: 2}
// 云函数收到的event为, 注意如果直接return此格式数据可能会被作为集成响应处理,参考下面的集成响应文档
```
{
path: '/',
httpMethod: 'GET',
headers: {
...
"content-type": 'application/json'
},
queryStringParameters: {a: "1", b: "2"},
requestContext: {云开发相关信息},
isBase64Encoded: false,
body: '{"a":1,"b":2}',
}
```
```
...
...
docs/uniCloud/policy-tcb.md
浏览文件 @
94743ce5
## 简介
为了保护用户的数据安全,云开发提供更灵活、可扩展、更细粒度的安全规则能力,开发者可以在云后台或者小程序开发工具上自定义安全规则,限制
**客户端**
对数据库的访问权限。本文档主要介绍如何配置安全规则以及表达式的相关说明。
安全规则本身不收费,但是安全规则额外的数据访问会统计到计费中。
为了保护用户的数据安全,uniCloud提供更灵活、可扩展、更细粒度的安全规则能力,开发者可以在uniCloud web控制台上自定义安全规则,限制
**客户端**
对云存储的访问权限。本文档主要介绍如何配置安全规则以及表达式的相关说明。
**注意**
-
`get`
函数会产生额外的数据访问。
-
指定文档ID查询的所有写操作会产生一次数据访问。
-
权限控制仅针对客户端
## 安全规则示例
...
...
@@ -15,15 +11,15 @@
**规则示例**
```
//云数据库
// 云存储
// 所有人可读,仅创建者可写
{
"read":
"auth.uid==doc._openid"
,
"write": "
doc.name=='zzz'
"
"read":
true
,
"write": "
resource.openid == auth.uid
"
}
//云存储
// 非匿名用户可读,仅创建者可写
{
"read":
true
,
"read":
"auth.loginType != 'ANONYMOUS'"
,
"write": "resource.openid == auth.uid"
}
```
...
...
@@ -33,10 +29,18 @@
-
key:指用户的操作类型。
-
value:指一个表达式。
##
操作类型
##
配置说明
-
[
云数据库操作类型
](
#云数据库操作类型
)
-
[
云存储操作类型
](
#云存储操作类型
)
开发者可以在uniCloud控制台设置云存储权限。如下图所示,点击
`编辑`
按钮,使用默认的四条规则,点击
`切换到安全规则`
可以自行配置JSON格式的权限规则。
![](
https://img.cdn.aliyun.dcloud.net.cn/uni-app/uniCloud/uniCloud-tcb-storage-policy.png
)
## 云存储操作类型
|操作类型 |说明 |默认值 |
|:-: |:-: |:-: |
|read |读取文件,例如:getTempFileURL |- |
|write |上传/覆盖文件,删除文件 |- |
## 表达式
...
...
@@ -46,26 +50,27 @@
**全局变量**
|变量名 |类型 |说明 |
|:-: |:-: |:-: |
|auth |object |用户登录信息,字段说明参见下文 |
|now |number |当前时间 |
|doc |any |文档数据或查询条件 |
|变量名 |类型 |说明 |
|:-: |:-: |:-: |
|auth |object |用户登录信息,字段说明参见下文 |
|now |number |当前时间的时间戳 |
|resource |object |云存储资源 |
|doc |any |数据库文档资源(目前不开放数据库权限配置) |
**auth**
|字段名 |类型 |说明 |
|:-: |:-: |:-: |
|loginType|string |登录方式,取值为ANONYMOUS(匿名登录)、CUSTOM(自定义登录)
|
|uid |string |用户唯一 ID(对应
数据库文档的doc._openid、云存储的resource.openid),见下面示例
|
|字段名 |类型 |说明
|
|:-: |:-: |:-:
|
|loginType|string |登录方式,取值为ANONYMOUS(匿名登录)、CUSTOM(自定义登录)|
|uid |string |用户唯一 ID(对应
云存储的resource.openid),见下面示例
|
```
//云数据库
{
"read": "auth.uid == doc._openid", //仅创建者可读
"write": "auth.uid == doc._openid" //仅创建者可写
}
**resource**
|字段名 |类型 |说明 |
|:-: |:-: |:-: |
|openid |string |资源创建者的用户唯一ID |
```
//云存储
{
"read": "resource.openid == auth.uid", //仅创建者可读
...
...
@@ -75,88 +80,20 @@
### 运算符
|运算符 |说明 |示例 |示例解释(集合查询) |
|:-: |:-: |:-: |:-: |
|== |等于 |auth.uid == 'zzz' |用户的 uid 为 zzz |
|!= |不等于 |auth.uid != 'zzz' |用户的 uid 不为 zzz |
|> |大于 |doc.age>10 |查询条件的 age 属性大于10 |
|>= |大于等于 |doc.age>=10 |查询条件的 age 属性大于等于10 |
|
<
|
小于
|
doc.age
>
10 |查询条件的 age 属性小于10 |
|
<
=
|
小于等于
|
doc.age
>
=10 |查询条件的 age 属性小于等于10 |
|in |存在于集合中 |auth.uid in ['zzz','aaa'] |用户的 uid 是['zzz','aaa']中的一个 |
|!(xx in [])|不存在于集合中,使用 in 的方式描述 !(a in [1,2,3]) |!(auth.uid in ['zzz','aaa']) |用户的 uid 不是['zzz','aaa']中的任何一个 |
|&& |与 |auth.uid == 'zzz' && doc.age>10 |用户的 uid 为 zzz 并且查询条件的 age 属性大于10 |
|
||
|或者 |auth.uid == 'zzz'
||
doc.age>10 |用户的 uid 为 zzz 或者查询条件的 age 属性大于10 |
|. |对象元素访问符 |auth.uid |用户的 uid |
|[] |数组访问符属性 |get('database.collection_a.user')[auth.uid] == 'zzz' |collection_a集合中id为user的文档,key 为用户 uid 的属性值为 zzz|
|运算符 |说明 |示例 |示例解释(集合查询) |
|:-: |:-: |:-: |:-: |
|== |等于 |auth.uid == 'zzz' |用户的 uid 为 zzz |
|!= |不等于 |auth.uid != 'zzz' |用户的 uid 不为 zzz |
|> |大于 |doc.age>10 |查询条件的 age 属性大于10 |
|>= |大于等于 |doc.age>=10 |查询条件的 age 属性大于等于10 |
|
<
|
小于
|
doc.age
>
10 |查询条件的 age 属性小于10 |
|
<
=
|
小于等于
|
doc.age
>
=10 |查询条件的 age 属性小于等于10 |
|in |存在于集合中 |auth.uid in ['zzz','aaa'] |用户的 uid 是['zzz','aaa']中的一个 |
|!(xx in []) |不存在于集合中,使用 in 的方式描述 !(a in [1,2,3]) |!(auth.uid in ['zzz','aaa']) |用户的 uid 不是['zzz','aaa']中的任何一个 |
|&& |与 |auth.uid == 'zzz' && resource.openid == 'xxx' |用户的 uid 为 zzz 并且资源的创建者id为 xxx |
|
||
|或者 |auth.uid == 'zzz'
||
auth.uid == 'xxx' |用户的 uid 为 zzz 或者用户的 uid 为 xxx |
|. |对象元素访问符 |auth.uid |用户的 uid |
**注意**
-
比较运算符的右值必须为数值。
### 函数
#### get
目前仅支持
`get`
函数,唯一的参数必须为
`database.集合名称.文档id`
。通过访问其它文档的数据来判断用户操作是否符合安全规则。
**使用示例**
```
{
"read":"get('xxxx')[auth.uid] in [1,2,3]",
"delete":"get('xxxx')[auth.uid] == 1 && doc.user in ['ersed','sfsdf'] "
}
```
**注意**
-
一个表达式最多可以有3个get函数。
-
最多可以访问2个不同的文档。
-
不允许嵌套调用,例如:get("xxxx").prop[get("xxxxx").zzzz];
## 云数据库
### 配置说明
开发者可以在uniCloud控制台设置数据库权限
**步骤**
1.
2.
3.
**此处需补充uniCloud控制台截图【uniCloud替换标记】**
### 云数据库操作类型
|操作类型 |说明 |默认值 |
|:-: |:-: |:-: |
|read |读文档 |false |
|write |写文档,可以细分为 create、update、delete|false |
|create |新建文档 |无 |
|update |更新文档 |无 |
|delete |删除文档 |无 |
## 云存储
### 配置说明
开发者可以在uniCloud控制台设置云存储权限
**步骤**
1.
2.
3.
**此处需补充uniCloud控制台截图【uniCloud替换标记】**
### 云存储操作类型
|操作类型 |说明 |默认值 |
|:-: |:-: |:-: |
|read |读取文件,例如:download |- |
|write |上传/覆盖文件,删除文件 |- |
\ No newline at end of file
docs/uniCloud/storage.md
浏览文件 @
94743ce5
...
...
@@ -4,6 +4,7 @@
即将支持云函数中使用云存储功能。
# 客户端API
## uploadFile(Object object)
上传文件到云存储,
**阿里云单文件大小限制为100M,腾讯云单文件最大为5G**
...
...
@@ -37,7 +38,8 @@
**注意**
-
使用阿里云时,
`cloudPath`
为云端文件名,请勿使用非法字符
<!-- - `cloudPath` 为文件的绝对路径,包含文件名 foo/bar.jpg、foo/bar/baz.jpg 等,不能包含除[0-9 , a-z , A-Z]、/、!、-、\_、.、、\*和中文以外的字符,使用 / 字符来实现类似传统文件系统的层级结构。[查看详情](https://cloud.tencent.com/document/product/436/13324) -->
-
腾讯云
`cloudPath`
为文件的绝对路径,包含文件名 foo/bar.jpg、foo/bar/baz.jpg 等,不能包含除[0-9 , a-z , A-Z]、/、!、-、
\_
、.、、
\*
和中文以外的字符,使用 / 字符来实现类似传统文件系统的层级结构。
-
腾讯云
`cloudPath`
为文件标识,相同的
`cloudPath`
会覆盖,如果没有权限覆盖则会上传失败
#### 响应参数
...
...
@@ -73,12 +75,24 @@ uni.chooseImage({
// promise
const
result
=
await
uniCloud
.
uploadFile
({
filePath
:
filePath
onUploadProgress
:
function
(
progressEvent
)
{
console
.
log
(
progressEvent
);
var
percentCompleted
=
Math
.
round
(
(
progressEvent
.
loaded
*
100
)
/
progressEvent
.
total
);
}
});
// callback
uniCloud
.
uploadFile
({
filePath
:
filePath
},
onUploadProgress
:
function
(
progressEvent
)
{
console
.
log
(
progressEvent
);
var
percentCompleted
=
Math
.
round
(
(
progressEvent
.
loaded
*
100
)
/
progressEvent
.
total
);
},
success
()
{},
fail
()
{},
complete
()
{}
...
...
@@ -94,9 +108,14 @@ uni.chooseImage({
-
阿里云返回的fileID为链接形式
<!-- ## getTempFileURL(Object getTempFileURLOptions)
## getTempFileURL(Object object)
获取文件临时下载链接。
**平台兼容性**
获取文件临时下载链接,
**仅腾讯云支持**
|阿里云 |腾讯云 |
|---- |---- |
|× |√ |
#### 请求参数
...
...
@@ -144,7 +163,7 @@ uniCloud.getTempFileURL({
complete
()
{}
});
```
-->
## deleteFile(Object object)
删除云端文件
...
...
@@ -225,3 +244,167 @@ let result = await tcb.downloadFile({
complete
(){}
});
```
-->
# 云函数API
## uniCloud.uploadFile(Object uploadFileOptions)
上传文件至云开发存储服务。
**平台兼容性**
|阿里云 |腾讯云 |
|---- |---- |
|× |√ |
#### 请求参数
**uploadFileOptions参数说明**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| cloudPath | string | 是 | 文件的绝对路径,包含文件名。例如 foo/bar.jpg、foo/bar/baz.jpg 等。 |
| fileContent | fs.ReadStream | 是 | buffer或要上传的文件
[
可读流
](
https://nodejs.org/api/stream.html#stream_class_stream_readable
)
。 |
#### 响应参数
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code | string| 否 | 状态码,操作成功则不返回。 |
| message | string| 否 | 错误描述。 |
| fileID | fileID| 是 | 文件唯一 ID,用来访问文件,建议存储起来。 |
| requestId | string| 否 | 请求序列号,用于错误排查。 |
#### 示例代码
```
javascript
const
fs
=
require
(
"
fs
"
);
let
result
=
await
uniCloud
.
uploadFile
({
cloudPath
:
"
test-admin.jpeg
"
,
fileContent
:
fs
.
createReadStream
(
`
${
__dirname
}
/cos.jpeg`
)
});
```
### uniCloud.getTempFileURL(Object getTempFileURLOptions)
获取文件下载链接。
**平台兼容性**
|阿里云 |腾讯云 |
|---- |---- |
|× |√ |
#### 请求参数
**getTempFileURLOptions参数说明**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| fileList|
<
Array
>
.string| 是 | 要下载的文件 ID 组成的数组。|
**fileList字段**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| fileID| string | 是 | 文件 ID。 |
| maxAge| Integer | 是 | 文件链接有效期。|
#### 响应参数
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则为 SUCCESS。|
| message | string | 否 | 错误描述。 |
| fileList |
<
Array
>
.object| 否 | 存储下载链接的数组。 |
| requestId | string | 否 | 请求序列号,用于错误排查。 |
**fileList字段**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code | string| 否 | 删除结果,成功为 SUCCESS。|
| fileID | string| 是 | 文件 ID。 |
| tempFileURL | string| 是 | 文件访问链接。 |
#### 示例代码
```
javascript
let
result
=
await
uniCloud
.
getTempFileURL
({
fileList
:
[
'
cloud://test-28farb/a.png
'
]
});
```
## uniCloud.deleteFile(Object deleteFileOptions)
删除云端文件。
#### 请求参数
**deleteFileOptions参数说明**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| fileList|
<
Array
>
.string| 是 | 要删除的文件 ID 组成的数组。|
#### 响应参数
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code | string | 否 | 状态码,操作成功则不返回。|
| message | string | 否 | 错误描述 |
| fileList |
<
Array
>
.object| 否 | 删除结果组成的数组。 |
| requestId | string | 否 | 请求序列号,用于错误排查。|
**fileList字段**
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| code | string | 否 | 删除结果,成功为SUCCESS。 |
| fileID | string | 是 | 文件 ID。 |
#### 示例代码
```
javascript
let
result
=
await
uniCloud
.
deleteFile
({
fileList
:
[
"
cloud://test-28farb/a.png
"
]
});
```
## uniCloud.downloadFile(Object downloadFileOptions)
下载已上传至云开发的文件至本地(默认本地根目录/root)。
**平台兼容性**
|阿里云 |腾讯云 |
|---- |---- |
|× |√ |
#### 请求参数
**downloadFileOptions参数说明**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| fileID | string| 是 | 要下载的文件的 ID。 |
| tempFilePath| string| 否 | 下载的文件要存储的位置。|
#### 响应参数
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code | string| 否 | 状态码,操作成功则不返回。 |
| message | string| 否 | 错误描述。 |
| fileContent | Buffer| 否 | 下载的文件的内容。如果传入 tempFilePath 则不返回该字段。|
| requestId | string| 否 | 请求序列号,用于错误排查。 |
#### 示例代码
```
javascript
let
result
=
await
uniCloud
.
downloadFile
({
fileID
:
"
cloud://aa-99j9f/my-photo.png
"
,
// tempFilePath: '/tmp/test/storage/my-photo.png'
});
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录