100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 阿里云oss上传文件

阿里云oss上传文件

时间:2023-10-03 08:05:37

相关推荐

阿里云oss上传文件

本博客是原创,讲的是如何上传文件到oss服务器,并且以python代码讲解为例:

上传文件目录下的视频到OSS服务器指定的目录,需要以下几个步骤:

1.需要在阿里云上注册一个OSS用户,创建自己的bucket,同时需要知道access_key_id、access_key_secret、ossurl三个参数。

2.需要指出本地文件的路径,以及上传到OSS服务器上的路径。

3.调用OSS接口,上传文件即可。

本例使用python语言进行编写,上传到OSS服务器路径。代码解释如下:

importoss2importosimportsysimportconfigparser

首先引用上述几个包,oss2是阿里云自带的一个服务包。

定义上传类:

classUploadFle2OSS(object):def__init__(self,basedir,ossDir):self.basedir = basedir#本地路径self.ossDir = ossDir#远程路径self.ossBucket = self.initOSS()#OSS初始化definitOSS(self):'''OSS初始化:return:'''access_key_id = readConfigContent('initoss','access_key_id')access_key_secret = readConfigContent('initoss','access_key_secret')ossurl = readConfigContent('initoss','ossurl')bucket_name = readConfigContent('initoss','bucket_name')auth = oss2.Auth(access_key_id, access_key_secret)bucket = oss2.Bucket(auth, ossurl, bucket_name)returnbucket

包含OSS初始化,initOSS作用是指把传过来的OSS4个参数进行封装,封装后进行认证,最后返回一个bucket,bucket可以理解为一个句柄,即操作OSS的一个句柄而已。

defdir_list_file(self,dir):'''遍历目录下的文件,并上传到oss:paramdir::return:'''fs = os.listdir(dir)forfinfs:file = dir +"/"+ fifos.path.isdir(file):self.dir_list_file(file)else:self.uploadFile(file)

这个函数是遍历用户本地视频文件的目录,遍历出改目录下的视频文件并上传到OSS。

defuploadFile(self,file):remoteName = self.ossDir + file.replace(self.basedir,'').replace('\\','/')print('本地文件:', file,'正在上传到OSS:', remoteName)self.ossBucket.put_object_from_file(remoteName, file)

这个函数是上传到OSS的指定目录中。

封装好class后,下面需要写我们自己的业务逻辑,首先新建一个config文件,内容如下:

[initoss]access_key_id = 自己的keyidaccess_key_secret = 自己的secretossurl = 自己的ossurlbucket_name = 自己的bucket名称

[video]# 视频地址basedir_drv = /Users/fengbo/Desktop/ossDir_drv = data/video/

initoss里面需要填写自己申请到的OSS信息。Video里的 basedir_drv是指视频的本地目录,ossDir_drv是指oss指定的目录。

定义函数变量本地目录中的视频并上传,函数如下:

importosimportconfigparserfromUploadFile2OSSimportUploadFle2OSS

defuploadVideo2OSS(uplaoddate):'''上传视频:return:'''basedir_drv = readConfigContent('video','basedir_drv')+uplaoddateossDir_drv = readConfigContent('video','ossDir_drv')+uplaoddatefun1 = UploadFle2OSS(basedir_drv, ossDir_drv)fun1.dir_list_file(basedir_drv)

其中readConfigContent是读取配置文件的函数,如下:

defreadConfigContent(content, keyValue):'''读取配置文件信息:paramcontent::paramkeyValue::return:'''configFile = os.getcwd() +'/config'#开发环境cf = configparser.ConfigParser()cf.read(configFile)value = cf.get(content, keyValue)returnvalue

最后写主函数调用:

if__name__=='__main__':uploadFile ='test'#上传视频的本地目录uploadVideo2OSS(uploadFile)

我本地视频目录是/Users/fengbo/Desktop/test/1.mp4 。test目录可能会经常变化,比如按天变化等,所以将这个作为变量提取出来。

运行后,上传到OSS服务器,如图所示:

关于路径和其他的定制化需求,可以自己进行修改即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。