一、开通云存储服务

在AGC中开通云存储服务

二、更新配置文件

  • 更新配置

在AGC的项目设置中找到【agconnect-services.json】文件,下载下来,放置在Dev Eco Studio的【entry\src\main\resources\rawfile】目录下,即配置成功

  • 添加依赖

在oh-package.json5中添加依赖

"dependencies": {        

         "@hw-agconnect/cloud": "^1.0.1",        

         "@hw-agconnect/hmcore": "^1.0.1",        

         "@hw-agconnect/auth-component": "^1.0.1"

}

  • 初始化

在【src/main/ets/entryability/EntryAbility.ets】中进行初始化 

//初始化项目
let input = await this.context.resourceManager.getRawFileContent('agconnect-services.json')
let jsonString = util.TextDecoder.create('utf-8', { ignoreBOM: true }).decodeWithStream(input, { stream: false })
initialize(this.context, JSON.parse(jsonString));

三、在相簿中选择照片

            //在相册里选照片
            const options = new picker.PhotoSelectOptions() //图片选择
            options.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE //媒体类型,是图片还是视频
            options.maxSelectNumber = 1 //最大选择个数
            const result = await new picker.PhotoViewPicker().select(options) //result即为选择的照片

四、调用云存储的API上传图片

            //调用api上传照片
            cloud.storage().upload({  //storage方法表示云存储对象,upload表示上传
              localPath: result.photoUris[0], //上传文件的本地路径
              cloudPath: `test/${result.photoUris[0].split('/').pop()}` //上传到云存储的位置
            })

五、获取上传地址的网络地址

            //获取上传照片的网络地址
              //传入的是云存储的位置
              //得到的是公网地址 
            const photoUrl = await cloud.storage().getDownloadURL(`test/${result.photoUris[0].split('/').pop()}`)

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐