python2系列 接入阿里云oss sdk 实现上传脚本,亲测,,公司图片要从原有的n


公司图片要从原有的nfs存储上迁移到oss存储上,其实阿里云提供的很多种方式,但是作为一枚运维人员很有必要学会使用ossutil工具,当然接入阿里oss的python的sdk也是很有必要的,下面我就将我写的简单的脚本样例晒一下:

#!/usr/bin/envpython#!-*-coding:utf8-*-"""aliyujnoss2pythonsdk上传测试测试!!"""from__future__importprint_functionimportoss2importos,sys#初始化oss登录验证auth=oss2.Auth(‘xxxxxxxxxxxx‘,‘xxxxxxxxxxxxxxxxxx‘)#所有app图片bucketimgs_bucket=oss2.Bucket(auth,‘oss-cn-shanghai-internal.aliyuncs.com‘,‘yijiaoyuan-img‘)#################################以上是初始化程序####---------------------------####以下是ossbucket操作##################################本地资源路径初始化apps=(‘api.yijiaoyuan.net‘,‘passport.letiku.net‘,‘score.letiku.net‘,‘tcms.letiku.net‘,‘tcmsq.letiku.net‘,‘tiku.letiku.net‘,‘www.letiku.net‘,‘xiyizhiyeyishi.letiku.net‘,‘xiyizhulizyys.letiku.net‘,‘yijiaoyuan.letiku.net‘,‘yjy.yijiaoyuan.net‘)uploads_dirs=[‘/www/web/‘+‘test.‘+app+‘/Uploads‘forappinapps]imgs_bucket_dirs=[]imgs_bucket_files=[]local_res_files=[]#获取bucket上的文件和目录资源,因为bucket上没有文件夹的概念defget_res_on_bucket():forobjinoss2.ObjectIterator(imgs_bucket,delimiter="/"):ifobj.is_prefix():imgs_bucket_dirs.append(obj)print(‘directory:‘+obj.key)else:print(‘file:‘+obj.key)imgs_bucket_files.append(obj)#文件归类,获取要上传的图片的本地res的所有文件的绝对路径defgetLocalFiles(dir):ifos.path.exists(dir):forresinos.listdir(dir):ab_dir=dir+os.sep+resifos.path.isfile(ab_dir):#ifres_uri.endswith(‘.jpg‘)orres_uri.endswith(‘.png‘):ifab_dir.endswith(‘.jpg‘)orab_dir.endswith(‘.png‘):local_res_files.append(ab_dir)ifos.path.isdir(ab_dir):getLocalFiles(ab_dir)#上传文件defputFileToBucket():forfileinlocal_res_files:#key:bucket上的名称key=file[file.find(‘Uploads‘):]result=imgs_bucket.put_object_from_file(key,file,progress_callback=percentage)print(result)#起始程序defstart(dir):fordirinuploads_dirs:getLocalFiles(dir)#进度条功能defpercentage(consumed_bytes,total_bytes):iftotal_bytes:rate=int(100*(float(consumed_bytes))/(float(total_bytes)))print(‘\r{0}%‘.format(rate),end=‘‘)sys.stdout.flush()if__name__=="__main__":#get_res_on_bucket()start(uploads_dirs)#print(local_res_files)putFileToBucket()

作为一个运维人员第一次接入sdk我还是有些激动,运行结果图示如下:

技术分享

其实,最近也开始在学习php程序,公司的后台就是用的php,很有必要学习php。每天学一点,然后

我也即将用php来接入这个sdk。加油,平常心学习,每天进步一点点!!


本文出自 “bobo的运维之路” 博客,转载请与作者联系!

python2系列 接入阿里云oss sdk 实现上传脚本,亲测

评论关闭