通过python直接上传文件(文件夹或目录)到阿里云oss

可以直接将本地的文件夹批量上传到指定的阿里云oss 存储目录里。

这里需要使用自己阿里云的AccessKeyID 和AccessKeySecret,没有的直接登录阿里云点击自己的头像便可以创建获取。

安装阿里云提供的oss2包:

pip install oss2

直接上代码

import os
import sys
import oss2
#本地文件夹路径目录
basedir='D:\file'
#阿里云存储目录,要保证和下面的project_name相同
projectList = ['test\']
#本地文件夹
dirList = [basedir]

bucket=''  #不需要填,声明变量而已
ossDir=''
basedir=''
#将accessKeyId 和 accessKeySecret替换自己的
ossAuth=oss2.Auth('accessKeyId','accessKeySecret')
#bucketName
ossBucket = None



def uploadFile2Oss(pro):
	if pro in projectList:
		print('>>>>>>>>>>>>>>>>>Upload:'+ pro +'---Start!')
		global ossDir,basedir,bucket,ossBucket
		ossDir, basedir= pro,dirList[projectList.index(pro)]
		#填写自己的阿里云bucket名称
		bucket = 'your-prod-backend'
		#http://oss-cn-hangzhou.aliyuncs.com替换为自己的阿里云地址
		ossBucket = oss2.Bucket(ossAuth,'http://oss-cn-hangzhou.aliyuncs.com',bucket)
		listFile(basedir)
	else:
		print('请检查填写的bucket名称和地址是否正确')


def uploadFile(file):
    # remoteName为oss目录名称,file为本地上传目录名称
    remoteName = ossDir + file.replace(basedir,'').replace('\\','/')
    print ('uploading..',file,'remoteName',remoteName)
    result=ossBucket.put_object_from_file(remoteName,file)
    #文件上传成功http状态输出200
    print('http status: {0}'.format(result.status))

def listFile(dir):
    fs=os.listdir(dir)
    for f in fs:
        file=dir+'\\'+f;

        if os.path.isdir(file):
            listFile(file)
        else:
            uploadFile(file)

if __name__ == '__main__':
    # 填写oss的存储路径
    project_name = 'test/'
	uploadFile2Oss(project_name)

参考:
https://blog.csdn.net/xxsstf/article/details/85222836?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值