阿里云oss上传文件

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

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

1.需要在阿里云上注册一个OSS用户,创建自己的bucket,同时需要知道access_key_id、access_key_secret、ossurl三个参数。
2.需要指出本地文件的路径,以及上传到OSS服务器上的路径。
3.调用OSS接口,上传文件即可。
本例使用python语言进行编写,上传到OSS服务器路径。代码解释如下:
import oss2

import os

import sys

import configparser
首先引用上述几个包,oss2是阿里云自带的一个服务包。
定义上传类:
class UploadFle2OSS(object):



    def __init__(self,basedir,ossDir):

        self.basedir = basedir  #本地路径

        self.ossDir = ossDir #远程路径

        self.ossBucket = self.initOSS() #OSS初始化



    def initOSS(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)

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

    '''

    遍历目录下的文件,并上传到oss

    :param dir:

    :return:

    '''

    fs = os.listdir(dir)

    for f in fs:

        file = dir + "/" + f

        if os.path.isdir(file):

            self.dir_list_file(file)

        else:

            self.uploadFile(file)
这个函数是遍历用户本地视频文件的目录,遍历出改目录下的视频文件并上传到OSS。
def uploadFile(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 = 自己的keyid

access_key_secret = 自己的secret

ossurl = 自己的ossurl

bucket_name = 自己的bucket名称
[video]

# 视频地址

basedir_drv = /Users/fengbo/Desktop/

ossDir_drv = data/video/
initoss里面需要填写自己申请到的OSS信息。Video里的 basedir_drv是指视频的本地目录,ossDir_drv是指oss指定的目录。
定义函数变量本地目录中的视频并上传,函数如下:
import os

import configparser

from UploadFile2OSS import UploadFle2OSS
def uploadVideo2OSS(uplaoddate):

    '''

    上传视频

    :return:

    '''

    basedir_drv = readConfigContent('video', 'basedir_drv')+uplaoddate

    ossDir_drv = readConfigContent('video', 'ossDir_drv')+uplaoddate

    fun1 = UploadFle2OSS(basedir_drv, ossDir_drv)

    fun1.dir_list_file(basedir_drv)
其中readConfigContent是读取配置文件的函数,如下:
def readConfigContent(content, keyValue):

    '''

    读取配置文件信息

    :param content:

    :param keyValue:

    :return:

    '''

    configFile = os.getcwd() + '/config'  # 开发环境

    cf = configparser.ConfigParser()

    cf.read(configFile)

    value = cf.get(content, keyValue)

    return value
 
最后写主函数调用:
if __name__=='__main__':

    uploadFile = 'test' #上传视频的本地目录

    uploadVideo2OSS(uploadFile)
我本地视频目录是/Users/fengbo/Desktop/test/1.mp4 test目录可能会经常变化,比如按天变化等,所以将这个作为变量提取出来。
运行后,上传到OSS服务器,如图所示:
 
关于路径和其他的定制化需求,可以自己进行修改即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值