index.obj.js 2.1 KB
Newer Older
1
// 扩展存储自定义域名
2 3

var domain; // 如果只有一个域名,域名可以直接写在这里
4
module.exports = {
5 6 7 8 9 10
	_before() {
		if (!domain) {
			const provider = uniCloud.getCloudInfos()[0].provider;
			domain = `hello-ext-storage-${provider}.dcloud.net.cn`;
		}
	},
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
	getUploadFileOptions(data = {}) {
		let {
			cloudPath, // 前端传过来的文件路径
		} = data;
		// 可以在此先判断下此路径是否允许上传等逻辑
		// ...

		// 然后获取 extStorageManager 对象实例
		const extStorageManager = uniCloud.getExtStorageManager({
			provider: "qiniu", // 扩展存储供应商
			domain: domain, // 带http协议头的域名地址
		});
		// 最后调用 extStorageManager.getUploadFileOptions
		let uploadFileOptionsRes = extStorageManager.getUploadFileOptions({
			cloudPath: cloudPath,
			allowUpdate: false, // 是否允许覆盖更新,如果返回前端,建议设置false,代表仅新增,不可覆盖
		});
		return uploadFileOptionsRes;
	},
	// 设置文件为私有权限
	async setFilePrivate(data = {}) {
		let {
			fileID
		} = data;
		// 可以在此先判断下此路径是否允许设置为私有权限
		// ...

		// 然后获取 extStorageManager 对象实例
		const extStorageManager = uniCloud.getExtStorageManager({
			provider: "qiniu", // 扩展存储供应商
			domain: domain, // 带http协议头的域名地址
		});
		let res = await extStorageManager.updateFileStatus({
			fileID, // 私有文件id
			isPrivate: true, // true 私有 false 公共
		});
		console.log('updateFileStatus: ', res);
		return res;
	},
	// 获取临时下载链接
	async getTempFileURL(data = {}) {
		let {
			fileList
		} = data;
		// 可以在此先判断下是否有权限访问这些私有文件
		// ...

		// 然后获取 extStorageManager 对象实例
		const extStorageManager = uniCloud.getExtStorageManager({
			provider: "qiniu", // 扩展存储供应商
			domain: domain, // 带http协议头的域名地址
		});
		let res = extStorageManager.getTempFileURL({
			fileList
		});
		console.log('getTempFileURL: ', res);
		return res;
	},

}