HarmonyOS鸿蒙Next中API 12云存储设置数据安全为用户私有,端上怎么调用?

HarmonyOS鸿蒙Next中API 12云存储设置数据安全为用户私有,端上怎么调用? 根据文档[1]

云存储的安全规则设置如下:

  1. agc.cloud.storage[ match: /{bucket}/{userId}/{path=**} { allow read, write: if request.auth.uid == userId; } ]

request.auth.uid,端上怎么传递这个uid参数呢?

通过 import { cloudStorage } from '@kit.CloudFoundationKit' 这种方式调用的云存储上传,没有看到相关API。

API12的上传云存储文档只提到没有授权的方式。[2]


更多关于HarmonyOS鸿蒙Next中API 12云存储设置数据安全为用户私有,端上怎么调用?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

api12 的 request.auth.uid 对应华为账号的 unionId

更多关于HarmonyOS鸿蒙Next中API 12云存储设置数据安全为用户私有,端上怎么调用?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


调用上传的时候,怎么传unionId呢?

端上调用指的是什么意思?云存储模块提供使用云存储对文件进行上传、下载、查询和删除等操作的能力。并不涉及到云侧调用。

云存储配置成公开可访问的时候,文件可以上传成功到云存储。

但是我修改安全配置为用户私有的时候,再调用上传就报错了,

以下配置:

agc.cloud.storage[
    match: /{bucket}/{userId}/{path=**} {
        allow read, write:  if request.auth.uid == userId;
    }
]

文档说的是系统会校验用户身份,校验通过后,会使用用户的uid填充request.auth.uid变量,以此获得访问的权限。

但是我登录了账号,依然上传报错。云路径我传的是登录之后获取到的unionID加文件名。/${this.unionID}/${fileName}

希望大佬可以指导一下。感谢!!!

在HarmonyOS鸿蒙Next中,API 12提供了云存储功能,允许开发者将数据存储在云端,并确保数据安全为用户私有。要在端上调用云存储设置数据安全为用户私有,可以使用以下步骤:

  1. 初始化云存储服务:首先,确保已经正确初始化了云存储服务。可以使用CloudStorageManager类来初始化服务。

  2. 设置数据安全策略:通过调用CloudStorageManager.setDataSecurityPolicy()方法,将数据安全策略设置为用户私有。这一步确保数据只能由当前用户访问。

  3. 上传数据:使用CloudStorageManager.upload()方法将数据上传到云端。在上传过程中,数据会自动应用之前设置的用户私有安全策略。

  4. 读取数据:通过CloudStorageManager.download()方法从云端读取数据。由于数据安全策略已设置为用户私有,只有当前用户可以访问这些数据。

  5. 处理异常:在调用过程中,可能会遇到各种异常情况,如网络问题、权限不足等。应适当处理这些异常,确保应用的稳定性。

以下是一个简化的代码示例:

import cloudStorage from '@ohos.cloudStorage';

// 初始化云存储服务
cloudStorage.initialize();

// 设置数据安全策略为用户私有
cloudStorage.setDataSecurityPolicy(cloudStorage.DataSecurityPolicy.USER_PRIVATE);

// 上传数据
cloudStorage.upload('path/to/local/file', 'path/to/remote/file')
    .then(() => {
        console.log('Upload successful');
    })
    .catch((error) => {
        console.error('Upload failed', error);
    });

// 读取数据
cloudStorage.download('path/to/remote/file', 'path/to/local/file')
    .then(() => {
        console.log('Download successful');
    })
    .catch((error) => {
        console.error('Download failed', error);
    });

在HarmonyOS鸿蒙Next中,API 12的云存储默认将数据安全设置为用户私有。要在端上调用,首先需确保应用已集成HMS Core SDK,并在开发者联盟中配置云存储服务。调用时,使用CloudStorage类获取实例,通过getInstance()方法初始化。然后,使用putFile()getFile()方法上传或下载文件,确保在操作前检查用户权限,保障数据隐私安全。

回到顶部