Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello-uniCloud
提交
ac4c2aa3
H
hello-uniCloud
项目概览
DCloud
/
hello-uniCloud
通知
294
Star
3
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello-uniCloud
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ac4c2aa3
编写于
12月 08, 2023
作者:
A
Anne_LXM
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add ext-storage-qiniu.test.js
上级
1e25fab8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
97 addition
and
43 deletion
+97
-43
pages/storage/ext-storage-qiniu.test.js
pages/storage/ext-storage-qiniu.test.js
+42
-0
pages/storage/ext-storage-qiniu.vue
pages/storage/ext-storage-qiniu.vue
+54
-42
uniCloud-aliyun/cloudfunctions/ext-storage-co/index.obj.js
uniCloud-aliyun/cloudfunctions/ext-storage-co/index.obj.js
+1
-1
未找到文件。
pages/storage/ext-storage-qiniu.test.js
0 → 100644
浏览文件 @
ac4c2aa3
describe
(
'
pages/storage/ext-storage-qiniu.vue
'
,
()
=>
{
let
page
beforeAll
(
async
()
=>
{
// 重新reLaunch至首页,并获取首页page对象(其中 program 是uni-automator自动注入的全局对象)
page
=
await
program
.
navigateTo
(
'
/pages/storage/ext-storage-qiniu
'
)
await
page
.
waitFor
(
'
view
'
)
await
page
.
setData
({
'
isTest
'
:
true
})
})
it
(
'
qiniu-storage-上传文件
'
,
async
()
=>
{
expect
.
assertions
(
2
);
const
res
=
await
page
.
callMethod
(
'
uploadFile
'
,
{
filePath
:
'
../../static/logo.png
'
,
cloudPath
:
Date
.
now
()
+
'
test-qiniu.png
'
,
isPrivate
:
false
})
console
.
log
(
'
res: ---1
'
,
res
);
expectText
(
res
.
fileID
,
'
qiniu://
'
)
expectText
(
res
.
fileURL
,
'
https://
'
)
})
it
(
'
qiniu-私有文件-上传
'
,
async
()
=>
{
expect
.
assertions
(
2
);
const
res
=
await
page
.
callMethod
(
'
uploadFile
'
,
{
filePath
:
'
../../static/play.png
'
,
// cloudPath: Date.now() + 'test-qiniu.png',
isPrivate
:
true
})
console
.
log
(
'
res: ----2
'
,
res
);
expectText
(
res
.
fileID
,
'
qiniu://
'
)
expectText
(
res
.
fileURL
,
'
https://
'
)
})
it
(
'
获取私有文件临时下载链接
'
,
async
()
=>
{
expect
.
assertions
(
3
);
expectText
(
await
page
.
data
(
'
privateFileID
'
),
'
qiniu://jest
'
)
const
res
=
await
page
.
callMethod
(
'
getTempFileURL
'
)
console
.
log
(
'
res: ----3
'
,
res
);
expectText
(
res
,
'
&token
'
)
expectText
(
res
,
'
https://
'
)
})
})
function
expectText
(
value
,
expectValue
){
expect
(
value
).
toEqual
(
expect
.
stringContaining
(
expectValue
));
}
\ No newline at end of file
pages/storage/ext-storage-qiniu.vue
浏览文件 @
ac4c2aa3
...
...
@@ -21,7 +21,8 @@
export
default
{
data
()
{
return
{
privateFileID
:
""
privateFileID
:
""
,
isTest
:
false
}
},
mounted
()
{},
...
...
@@ -76,6 +77,7 @@
})
},
async
uploadFile
(
options
)
{
console
.
log
(
'
options:
'
,
options
);
uni
.
showLoading
({
title
:
'
文件上传中...
'
})
...
...
@@ -83,53 +85,60 @@
customUI
:
true
});
const
uploadFileOptionsRes
=
await
uniCloudStorageExtCo
.
getUploadFileOptions
({
cloudPath
:
`
t
est/
${
Date
.
now
()}
.jpg`
,
// 支持自定义目录
cloudPath
:
`
j
est/
${
Date
.
now
()}
.jpg`
,
// 支持自定义目录
});
console
.
log
(
'
uploadFileOptionsRes:
'
,
uploadFileOptionsRes
)
const
uploadTask
=
uni
.
uploadFile
({
...
uploadFileOptionsRes
.
uploadFileOptions
,
// 上传文件所需参数
filePath
:
options
.
filePath
,
// 本地文件路径
success
:
async
()
=>
{
const
res
=
{
cloudPath
:
uploadFileOptionsRes
.
cloudPath
,
// 文件云端路径
fileID
:
uploadFileOptionsRes
.
fileID
,
// 文件ID
fileURL
:
uploadFileOptionsRes
.
fileURL
,
// 文件URL(如果是私有权限,则此URL是无法直接访问的)
};
// 上传成功后的逻辑
console
.
log
(
res
);
if
(
options
.
isPrivate
)
{
// 设为私有文件
const
uniCloudStorageExtCo
=
uniCloud
.
importObject
(
"
ext-storage-co
"
,
{
customUI
:
true
});
await
uniCloudStorageExtCo
.
setFilePrivate
({
fileID
:
res
.
fileID
});
this
.
privateFileID
=
res
.
fileID
;
}
uni
.
showModal
({
content
:
'
图片上传成功,fileID为:
'
+
res
.
fileID
,
showCancel
:
false
})
},
fail
:
(
err
)
=>
{
// 上传失败后的逻辑
console
.
log
(
err
);
if
(
err
.
message
!==
'
Fail_Cancel
'
)
{
let
testRes
=
new
Promise
((
resolve
,
reject
)
=>
{
const
uploadTask
=
uni
.
uploadFile
({
...
uploadFileOptionsRes
.
uploadFileOptions
,
// 上传文件所需参数
filePath
:
options
.
filePath
,
// 本地文件路径
success
:
async
()
=>
{
const
res
=
{
cloudPath
:
uploadFileOptionsRes
.
cloudPath
,
// 文件云端路径
fileID
:
uploadFileOptionsRes
.
fileID
,
// 文件ID
fileURL
:
uploadFileOptionsRes
.
fileURL
,
// 文件URL(如果是私有权限,则此URL是无法直接访问的)
};
// 上传成功后的逻辑
console
.
log
(
res
);
if
(
options
.
isPrivate
)
{
// 设为私有文件
const
uniCloudStorageExtCo
=
uniCloud
.
importObject
(
"
ext-storage-co
"
,
{
customUI
:
true
});
await
uniCloudStorageExtCo
.
setFilePrivate
({
fileID
:
res
.
fileID
});
this
.
privateFileID
=
res
.
fileID
;
}
uni
.
showModal
({
content
:
`图片上传失败,错误信息为:
${
err
.
message
}
`
,
content
:
'
图片上传成功,fileID为:
'
+
res
.
fileID
,
showCancel
:
false
})
resolve
(
res
)
},
fail
:
(
err
)
=>
{
// 上传失败后的逻辑
console
.
log
(
err
);
if
(
err
.
message
!==
'
Fail_Cancel
'
)
{
uni
.
showModal
({
content
:
`图片上传失败,错误信息为:
${
err
.
message
}
`
,
showCancel
:
false
})
}
reject
(
err
)
},
complete
:
()
=>
{
uni
.
hideLoading
()
}
},
complete
:
()
=>
{
uni
.
hideLoading
()
}
});
// 监听上传进度
uploadTask
.
onProgressUpdate
((
res
)
=>
{
console
.
log
(
"
监听上传进度
"
,
res
);
});
});
// 监听上传进度
uploadTask
.
onProgressUpdate
((
res
)
=>
{
console
.
log
(
"
监听上传进度
"
,
res
);
});
})
console
.
log
(
"
testRes
"
,
testRes
)
return
testRes
},
async
getTempFileURL
()
{
const
uniCloudStorageExtCo
=
uniCloud
.
importObject
(
"
ext-storage-co
"
);
...
...
@@ -141,6 +150,9 @@
content
:
'
图片临时下载链接为:
'
+
tempFileURL
,
showCancel
:
false
})
if
(
this
.
isTest
){
return
tempFileURL
}
}
}
}
...
...
uniCloud-aliyun/cloudfunctions/ext-storage-co/index.obj.js
浏览文件 @
ac4c2aa3
// 扩展存储自定义域名
const
domain
=
"
qiniu01
.dcloud.net.cn
"
;
const
domain
=
"
jest-ext-storage-aliyun
.dcloud.net.cn
"
;
module
.
exports
=
{
_before
()
{},
getUploadFileOptions
(
data
=
{})
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录