最新案例教程点击下方链接跳转,CSDN已停止更新
点
击
跳
转
OSS对象存储
1、案例说明
- 本案例使用haas506开发板录音,并将录音文件储存至阿里云OSS。
- 对象存储OSS(Object Storage Service)提供基于网络的数据存取服务。使用OSS,可以通过网络随时存储和调用包括文本、图片、音视频在内的各类数据文件。
2、开始使用OSS
- 首先需要在阿里云平台开通OSS服务,具体步骤开始使用OSS。
- 程序中需要使用到 endpoint,bucketname。
- 获取阿里云云账号AccessKey ID和AccessKey Secret。
3、程序
将endpoint,bucketname,AccessKey ID,AccessKey Secret和objectname填入程序相应位置。(43行)
main.py
# -*- coding: UTF-8 -*-
import OSS as oss
from audio import Record
import network
import utime as time
import uos
import sntp
g_connect_status = False
g_wait_upload_finashed = True
localfilename = '/sdcard0/myFirstRecord.pcm'
def on_4g_cb(args):
global g_connect_status
pdp = args[0]
netwk_sta = args[1]
if netwk_sta == 1:
g_connect_status = True
else:
g_connect_status = False
def connect_network():
global net,on_4g_cb,g_connect_status
net = network.NetWorkClient()
g_register_network = False
if net._stagecode is not None and net._stagecode == 3 and net._subcode == 1:
g_register_network = True
else:
g_register_network = False
if g_register_network:
net.on(1,on_4g_cb)
net.connect(None)
else:
print('网络注册失败')
while True:
if g_connect_status:
print('网络连接成功')
break
time.sleep_ms(20)
def oss_upload_file(filename):
keyid = 'yourKeyId'
keysecret = 'yourKeySecret'
endpoint = 'yourEndPoint'
bucketname = 'yourBucketName'
objectname = '/record/myFirstRecord.pcm'
ret = oss.uploadFile(keyid,keysecret,endpoint,bucketname,objectname,filename)
return ret
def end_cb(args):
global g_wait_upload_finashed
print('filename:%s,filelen:%d,errcord:%d'%(args[0],args[1],args[2]))
print('record finashed then upload record file to oss')
oss_upload_file(args[0])
g_wait_upload_finashed = False
def start_record(filename):
rd = Record()
rd.end_callback(end_cb)
rd.start(filename,10)
if __name__ == '__main__':
time.sleep_ms(5000)
ret = uos.mountsd()
if ret == True:
connect_network()
sntp.settime()
start_record(localfilename)
else:
print('not found sdcard')
while g_wait_upload_finashed:
time.sleep_ms(1000)
print('waiting upload oss finished...')
4、实现步骤
(1)烧录代码
(2)查看结果
class-OSS
oss
downloadFile | uploadFile |
---|---|
下载文件 | 上传文件 |
oss.uploadFile(keyid,keysecret,endpoint,bucketname,objectname,filename)
作用:上传文件
参数:keyid,keysecret,endpoint,bucketname,objectname,filename
返回:0成功
参数 | 类型 | 说明 |
---|---|---|
keyid | str | OSS服务的keyid |
keysecret | str | OSS服务的keysecret |
endpoint | str | OSS的区域节点,如’oss-cn-beijing.aliyuncs.com’ |
bucketName | str | 对象存储OSS中Bucket列表名称,需事先创建 |
objectname | str | 文件上传到指定文件夹内,需事先创建 |
filename | str | 上传的文件名称 |
oss.downloadFile(keyid,keysecret,endpoint,bucketname,objectname,filepath) |
作用:下载文件
参数:keyid,keysecret,endpoint,bucketname,objectname,filepath
返回:0成功
参数 | 类型 | 说明 |
---|---|---|
keyid | str | OSS服务的keyid |
keysecret | str | OSS服务的keysecret |
endpoint | str | OSS的区域节点,如’oss-cn-beijing.aliyuncs.com’ |
bucketName | str | 对象存储OSS中Bucket列表名称,需事先创建 |
objectname | str | 需要下载的文件名称 |
filepath | str | 下载完成后,文件存放的路径 |
总结
本节介绍了如何使用Haas506的高级组件库中的OSS模块,实现了本地录音、OSS上传文件功能。