近期项目决定集成使用华为AGC的云存储服务,用来存储用户上传的数据文件,其功能类似于用户的个人云盘,可以将用户数据或者应用内预置贴图等数据,存放在AGC云侧的数据服务器中。
按需下载,可以大幅减小应用的包体,并且使用该云存储产品,使用SDK提供的接口使用即可,不用关注后台服务器的运维和部署等操作,大幅减少开发人力。
目前主要在根据具体的使用场景进行前期的调研和集成,当前涉及一个文件分享的场景,当前特地对文件分享的场景做相关的调研。
在AGC界面创建分享
华为的AGC的云存储服务,提供AGC控制台,可以再AGC控制台,以管理员的身份操作并且管理文件。
关于AGC管理的文件分享,官方文档里,写的标题为 创建令牌。这个标题名可能比较难懂,其实就是创建分享链接。对应文档:
操作步骤如下:
1、登录AGC管理台, 点击 我的项目 ,找到你的云存储项目。在左侧导航栏选择 构建-云存储。
2、选择一个文件,选择操作栏的 详情
3、在弹出的选框中,可以看到有共享令牌的内容。每个文件默认匹配一个共享令牌。当文件拥有一个令牌时,就可以使用该令牌下载当前文件。
4、点击 复制 ,复制该令牌。复制出来的令牌,就是一个下载链接,可以通过这个下载链接,直接下载这个文件。
在应用内创建分享
华为AGC云存储服务,还提供了多个平台的SDK,可以直接在Android应用或者IOS应用内集成SDK,通过SDK提供的接口,直接进行文件的相关操作,当然也是可以直接创建文件的分享链接的。
下面以Android平台为例,介绍如何集成SDK并且创建文件的分享链接。
1、在项目级的build.gradle中添加Maven仓库地址:
buildscript {
repositories {
maven { url 'https://developer.huawei.com/repo/'}
}
dependencies {
classpath 'com.huawei.agconnect:agcp:1.5.2.300'
}
}
allprojects {
repositories {
maven { url 'https://developer.huawei.com/repo/'}
}
}
2、添加AGCP插件与agc配置文件
在应用级build.gradle添加如下agcp插件
apply plugin: 'com.huawei.agconnect'
在AGC控制台的 我的项目 – 项目设置 下,下载agconnect-services.json文件,将其下载到项目的app路径下
3、在应用级build.gradle添加SDK依赖
dependencies {
implementation 'com.huawei.agconnect:agconnect-storage:1.3.1.200'
}
4、初始化SDK
使用getInstance()接口进行初始化。
private void initAGCStorageManagement() {
mAGCStorageManagement = AGCStorageManagement.getInstance("Bucket Name");
}
5、创建对应文件的引用,并且获取下载链接
private void downloadURL() {
final String path = "test.txt";
StorageReference storageReference = mAGCStorageManagement.getStorageReference(path);
Task<Uri> downloadUrlTask = storageReference.getDownloadUrl();
downloadUrlTask.addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Log.i("getUrl","getURL Success: " + uri.toString());
}
});
}
拿到下载链接,就可以进行文件的分享了。
参考文链接:
- 华为AppGallery Connect 云存储服务—控制台管理文件:
- 云存储服务,Android SDK API接口文档