WARNING
# 当前文档已迁移到新的文档站点 (opens new window),此内容不再维护!
# 安装
在 flutter 项目的 pubspec.yaml
文件的 dependencies
中添加
dependencies:
cloudbase_core: ^0.0.1
cloudbase_storage: ^0.0.1
# 上传文件
Future<void> uploadFile({String cloudPath, String filePath}) async {}
# 参数说明:
- cloudPath:云端文件的路径
- filePath:本地文件的路径,需要为能直接访问的路径
# 响应结果:void
上传文件成功时,uploadFile
接口会返回空,失败时则会抛出错误。
# 调用示例
import 'package:cloudbase_core/cloudbase_core.dart';
import 'package:cloudbase_storage/cloudbase_storage.dart';
import 'package:path_provider/path_provider.dart';
// 获取 flutter Document 路径
// 参考文档:https://flutter.cn/docs/cookbook/persistence/reading-writing-files
_getDocumentsPath() async {
final directory = await getApplicationDocumentsDirectory();
String path = directory.path;
return path;
}
void main() async {
CloudBaseCore core = CloudBaseCore.init({'env': 'your-env-id'});
CloudBaseStorage storage = CloudBaseStorage(core);
// 微信登录
CloudBaseAuth auth = CloudBaseWxAuth(core);
bool isLogin = await auth.isLogin();
if (!isLogin) {
await auth.login();
}
String path = await _getDocumentsPath();
await storage.uploadFile(
cloudPath: 'flutter/data.txt', filePath: '$path/data.txt');
}
# 下载文件
Future<void> downloadFile({String fileId, String savePath}) async {}
# 参数说明
- fileId:需要下载的文件 id
- savePath:保存文件的本地路径
# 响应结果:void
# 调用示例
import 'package:cloudbase_core/cloudbase_core.dart';
import 'package:cloudbase_storage/cloudbase_storage.dart';
import 'package:path_provider/path_provider.dart';
void main async {
// _getDocumentsPath() 同上
String docPath = await _getDocumentsPath();
// 本地存储文件的路径
String savePath = '$docPath/favicon.png';
// 初始化实例
CloudBaseCore core = CloudBaseCore.init({'env': 'your-env-id'});
CloudBaseStorage storage = CloudBaseStorage(core);
// 微信登录
CloudBaseAuth auth = CloudBaseWxAuth(core);
bool isLogin = await auth.isLogin();
if (!isLogin) {
await auth.login();
}
// 下载文件
String fileId = 'cloud://xxxx';
await storage.downloadFile(fileId: fileId, savePath: savePath);
}
# 删除云端文件
Future<CloudBaseStorageRes<List<DeleteMetadata>>> deleteFiles(List<String> fileIdList) async {}
# 参数说明
- fileIdList:需要删除的文件 Id 组成的数组
# 响应结果
{
// 请求 Id
'requestId': 'xx',
// 被调函数的返回结果
'data': [
{
'fileId': 'xxx',
'code': 'SUCCESS'
}
]
}
# 调用示例
import 'package:cloudbase_core/cloudbase_core.dart';
import 'package:cloudbase_storage/cloudbase_storage.dart';
void main async {
CloudBaseCore core = CloudBaseCore.init({'env': 'your-env-id'});
CloudBaseStorage storage = CloudBaseStorage(core);
// 微信登录
CloudBaseAuth auth = CloudBaseWxAuth(core);
bool isLogin = await auth.isLogin();
if (!isLogin) {
await auth.login();
}
String fileId = 'cloud://xxx';
CloudBaseStorageRes<List<DeleteMetadata>> res = await storage.deleteFiles([fileId]);
print(res.data[0]); // {'fileId': 'xxx', 'code': 'SUCCESS'}
}
# 获取文件下载链接
Future<CloudBaseStorageRes<List<DownloadMetadata>>> getFileDownloadURL(List<String> fileIdList) async {}
获取文件下载链接,可以自定义实现下载文件的方法。
# 参数说明
- fileIdList:需要删除的文件 Id 组成的数组
# 响应结果
{
// 请求 Id
'requestId': 'xx',
// 被调函数的返回结果
'data': [
{
'fileId': 'xxx',
'downloadUrl': 'https://xxx'
}
]
}
# 调用示例
import 'package:cloudbase_core/cloudbase_core.dart';
import 'package:cloudbase_storage/cloudbase_storage.dart';
void main() async{
CloudBaseCore core = CloudBaseCore.init({'env': 'your-env-id'});
CloudBaseStorage storage = CloudBaseStorage(core);
// 微信登录
CloudBaseAuth auth = CloudBaseWxAuth(core);
bool isLogin = await auth.isLogin();
if (!isLogin) {
await auth.login();
}
List<String> fileIds = [
'cloud://xxxx'
];
CloudBaseStorageRes<List<DeleteMetadata>> res res = await storage.getFileDownloadURL(fileIds);
print(res.data[0]); // {'fileId': 'xxx', 'downloadUrl': 'https://xxx'}
}
# 获取上传文件自定义属性
Future<CloudBaseStorageRes<UploadMetadata>> getUploadMetadata(String cloudPath) async{}
getUploadMetadata
方法可以获取上传文件需要的属性,可用于实现自定义上传文件的逻辑。
# 参数说明
- cloudPath:云端文件路径
# 响应结果
{
// 请求 Id
'requestId': 'xx',
// 被调函数的返回结果
'data': {
// 上传文件的 url
url: 'xxxx',
// 访问 token
token: '',
// 访问授权信息
authorization: '',
// 文件 id
cosFileId: ''
}
}
# 调用示例
import 'package:cloudbase_core/cloudbase_core.dart';
import 'package:cloudbase_storage/cloudbase_storage.dart';
void main() async {
CloudBaseCore core = CloudBaseCore.init({'env': 'your-env-id'});
CloudBaseStorage storage = CloudBaseStorage(core);
// 微信登录
CloudBaseAuth auth = CloudBaseWxAuth(core);
bool isLogin = await auth.isLogin();
if (!isLogin) {
await auth.login();
}
CloudBaseStorageRes<UploadMetadata>> res = await storage.getUploadMetadata('test/index.txt');
print(res.data);
}