haas506开发教程-高级组件库-OSS
1.OSS对象存储
- 案例说明
本地录音,OSS上传文件 - 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...')
- 实现步骤
(1)需要开通阿里云OSS服务
(2)获取到keyid-APi接口的id,keysecret-API接口的密钥,endpoint,bucketname,objectname-该文件存放的路径和文件名
(3)烧录代码
(4)查看结果
2.class-OSS
-
OSS
- 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 下载完成后,文件存放的路径 - oss.uploadFile(keyid,keysecret,endpoint,bucketname,objectname,filename)
3.总结
本节介绍了如何使用Haas506的高级组件库中的OSS模块,实现了本地录音、OSS上传文件功能。