def post(self, request, *args, **kwargs): data = request.data # id # pic_name # pic_path # pic_type id_card_list = [] driver_license_list = [] driving_license_list = [] bank_card_list = [] unsigned_list = [] pic_name = data['pic_name'] print(pic_name) pic_path = data['pic_path'] print(pic_path) print(len(pic_path)) for i in range(len(pic_path)): if pic_path[i].split('.')[-1] == 'zip' or pic_path[i].split( '.')[-1] == 'rar' or pic_path[i].split('.')[-1] == 'gz': import oss2 #ret = oss_rename(user_id, org_pic) auth = oss2.Auth('LTAIDGyxdSloVIAu', 'WVOPeB83DdojWcfs3wF6X6Ry0XNZYU') # Endpoint以杭州为例,其它Region请按实际情况填写。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'deepdraw-test') if pic_path[i].split('.')[-1] == 'zip': bucket.get_object_to_file(pic_path[i], 'pic.zip') z = zipfile.ZipFile('pic.zip', 'r') z.extractall( path=r"/root/deepdraw/untitled/xinyada/zip_pic") z.close() elif pic_path[i].split('.')[-1] == 'rar': print("file type is RAR") dir_list = os.listdir( "/root/deepdraw/untitled/xinyada/zip_pic") zip_pic_name = [] zip_pic_path = [] for name in dir_list: if name.split('.')[-1] == 'jpeg' or name.split( '.')[-1] == 'jpg' or name.split('.')[-1] == 'png': zip_pic_name.append(name) uuid = get_uuid() path = 'xinyada/zip/' + uuid + name.split('.')[-1] zip_pic_path.append(path) #解压后遍历上传图片 #for path,name in zip(zip_pic_path,zip_pic_name): # bucket.put_object_from_file(path, "/root/deepdraw/untitled/xinyada/zip_pic/" + name ) ret = { 'code': 1003, 'msg': '暂时不支持.zip/.rar/tar.gz等文件压缩包', 'pmeic_id_list': [], # 'input_json':input_json, # 'request_url':request_url, 'result': { 'id_card': id_card_list, 'driving_license': driving_license_list, 'driver_license': driver_license_list, 'bank_card': bank_card_list, 'unsigned': unsigned_list, }, 'pic_path': zip_pic_path, 'pic_name': zip_pic_name, } return JsonResponse(ret) pic_id_list = [] for name, path in zip(pic_name, pic_path): obj = PicInfo.objects.create(pic_name=name, pic_path=path, pic_type=4) pic_id_list.append(obj.id) inputparams = [] url_dic = {} pic_url = [] for path in pic_path: url = 'https://deepdraw-test.oss-cn-hangzhou.aliyuncs.com/' + path url_dic['pic_url'] = url # inputparams.append(url_dic) pic_url.append(url) result_list = [] for url in pic_url: url_dic['pic_url'] = url inputparams = [url_dic] input_dic = { "action": "xinyada", "inputparams": inputparams, "model": "xinyada_model", "proj": "deeplab", "exec": "batch" } import json input_json = json.dumps(input_dic) request_url = 'http://47.96.132.7:8083/polls/analyze_str/?str=' + input_json print(request_url) import requests try: r = requests.get(request_url) #拿到返回json并反序列化为dic except: ret = { 'code': 1000, 'msg': '模型请求错误', # 'model':r.text } #return JsonResponse(ret) print(r.text) data = json.loads(r.text) result_list.append(data['predictions'][0]['type']) #遍历返还的4种结果 # id_card_list = [] # driver_license_list = [] # bank_card_list = [] # unsigned_list = [] for result, url in zip(result_list, pic_url): if result == "id_card": id_card_list.append(url) elif result == "driving_license": driving_license_list.append(url) elif result == "driver_license": driver_license_list.append(url) elif result == "bank_card": bank_card_list.append(url) else: unsigned_list.append(url) ret = { 'code': '1001', 'msg': '分析成功', 'pic_id_list': pic_id_list, 'input_json': input_json, 'request_url': request_url, 'result': { 'id_card': id_card_list, 'driving_license': driving_license_list, 'driver_license': driver_license_list, 'bank_card': bank_card_list, 'unsigned': unsigned_list }, } return JsonResponse(ret)
import os import oss2 # 默认,外网访问 endpoint = os.environ.get('OSS_ENDPOINT', 'oss-cn-beijing.aliyuncs.com') # ECS 访问 # endpoint = 'oss-cn-beijing-internal.aliyuncs.com' # RAM user lottery-upload-oss access_key_id = '' access_key_secret = '' bucket_name = '' auth = oss2.Auth(access_key_id, access_key_secret) bucket = oss2.Bucket(auth, endpoint, bucket_name) def upload_text(key, text): return bucket.put_object(key, text) def upload_json(key, json_obj): upload_text(key, json.dumps(json_obj, indent=4)) def delete(key): bucket.delete_object(key) # Download # bucket.get_object(key).read()
def upload(auth, url, bucketName, videoName): bucket = oss2.Bucket(auth, url, bucketName) bucket.put_object_from_file(videoName, videoName)
import oss2,os,re,shutil from itertools import islice from pymongo import MongoClient conn = MongoClient('localhost', 27017) db = conn.youtube_db auth = oss2.Auth('LTAI9KoPJsTapdyo', '5kgYBIG3kGTLVjNXMdeOdg5xDZUgOi') bucket = oss2.Bucket(auth, 'oss-cn-zhangjiakou.aliyuncs.com', 'my-mixwheel') def oss_list(): file_list = [] for b in islice(oss2.ObjectIterator(bucket), 5000): file_list.append(b.key) return file_list def oss_exist(out_path,file_name): return bucket.object_exists(out_path+file_name) def oss_upload(local_path,out_path): for each in list_file(local_path): if not oss_exist(out_path,each): # bucket.put_object_from_file(out_path+each,local_path+each) # shutil.copy('E:/oss/video/'+each,'E:/oss/upload/'+each) db.col.remove({'video_id': each.split('.')[0]}) print(each) def oss_delete(file): bucket.delete_object(file) def list_file(path): temp_list = [] fs = os.listdir(path) if fs: for obj in fs: tmp_path = os.path.join(path, obj) if not os.path.isdir(tmp_path):
def upload_data(file_name, data): auth = oss2.Auth(SmsCodeConfig.access_key_id, SmsCodeConfig.access_key_secret) bucket = oss2.Bucket(auth, MeFileConfig.endpoint, MeFileConfig.bucket_name) bucket.put_object(file_name, data)
# # 以杭州区域为例,Endpoint是: # http://oss-cn-shenzhen.aliyuncs.com 或 # https://oss-cn-shenzhen.aliyuncs.com access_key_id = os.getenv('OSS_TEST_ACCESS_KEY_ID', '<您的AccessKeyId>') access_key_secret = os.getenv('OSS_TEST_ACCESS_KEY_SECRET', '<您的AccessKeySecret>') bucket_name = os.getenv('OSS_TEST_BUCKET', '<您的Bucket>') endpoint = os.getenv('OSS_TEST_ENDPOINT', '<您的访问域名>') # 确认上面的参数都填写正确了 for param in (access_key_id, access_key_secret, bucket_name, endpoint): assert '<' not in param, '请设置参数:' + param # 创建Bucket对象,所有直播相关的接口都可以通过Bucket对象来进行 bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint, bucket_name) # 创建一个直播频道。 # 频道的名称是test_rtmp_live。直播生成的m3u8文件叫做test.m3u8,该索引文件包含3片ts文件,每片ts文件的时长为5秒(这只是一个建议值,具体的时长取决于关键帧)。 channel_name = 'test_rtmp_live' playlist_name = 'test.m3u8' create_result = bucket.create_live_channel( channel_name, oss2.models.LiveChannelInfo(status='enabled', description='测试使用的直播频道', target=oss2.models.LiveChannelInfoTarget( playlist_name=playlist_name, frag_count=3, frag_duration=5))) # 创建直播频道之后拿到推流用的play_url(rtmp推流的url,如果Bucket不是公共读写权限那么还需要带上签名,见下文示例)和观流用的publish_url(推流产生的m3u8文件的url)。
def create(access_id, access_secret, bucket, endpoint): auth = oss2.Auth(access_id, access_secret) oss_bucket = oss2.Bucket(auth, endpoint, bucket) return oss_bucket
def post(self, request, *args, **kwargs): data = request.data print(data) token = data['token'] print('token' + str(token)) user_id = str(data['user_id']) org_pic = data['org_pic'] #.split(',') pic_id_list = data['pic_id_list'] #.split(',') size = data['size'] print('--org_pic:' + str(org_pic)) print(type(org_pic)) test_obj = UserToken.objects.filter(user_id=user_id, token=token) if not test_obj: ret = { 'code': 1000, 'msg': '认证失败', } return JsonResponse(ret) else: print('permision_ok') # source_obj = org_pic[0] # print(source_obj) # print(type(org_pic)) try: ctime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #oss_rename(user_id, org_pic) import oss2 #ret = oss_rename(user_id, org_pic) auth = oss2.Auth('LTAIDGyxdSloVIAu', 'WVOPeB83DdojWcfs3wF6X6Ry0XNZYU') #Endpoint以杭州为例,其它Region请按实际情况填写。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'deepdraw-test') url_list = [] result_url_list = [] for source_obj, pic_id in zip(org_pic, pic_id_list): try_count = 0 #@retry() def rename(source_obj, try_count): try_count = try_count + 1 print('第{}次重试oss命名。'.format(try_count)) file_name = 'wzs_test.' + source_obj.split('.')[-1] #source_obj = str(user_id)+'/pic/'+uuid+'.png' # 下载OSS文件到本地文件。如果指定的本地文件存在会覆盖,不存在则新建。 bucket.get_object_to_file(source_obj, file_name) #计算MD5 md5 = image_md5(file_name) #生成新obj名字 new_obj_name = 'input_folder/' + str( user_id ) + '/pic/' + md5[: 2] + '/' + md5 + '.' + source_obj.split( '.')[-1] result_obj_name = 'input_folder/' + str( user_id ) + '/pic/' + md5[: 2] + '/result_' + md5 + '.' + source_obj.split( '.')[-1] bucket.copy_object('deepdraw-test', source_obj, new_obj_name) bucket.delete_object(source_obj) print('-----------source_obj:' + source_obj) url = 'https://deepdraw-test.oss-cn-hangzhou.aliyuncs.com/' + new_obj_name url_list.append(url) print('-----------rename-oss-url:' + url) return url, result_obj_name #url,result_obj_name = rename(source_obj,try_count) #md5后端重命名:input_folder/user_id/pic/md5[:2]/md5.png if size == "800": url = 'https://deepdraw-test.oss-cn-hangzhou-internal.aliyuncs.com/' + source_obj + '!resize_800' #不重命名:user_id/pic/task_uuid/0.png elif size == "1200": url = 'https://deepdraw-test.oss-cn-hangzhou-internal.aliyuncs.com/' + source_obj + '!resize_1200' else: url = 'https://deepdraw-test.oss-cn-hangzhou-internal.aliyuncs.com/' + source_obj result_obj_name = 'result/' + source_obj #不重命名 url_list.append(url) print(url_list) if len(org_pic) == 1: print('CALLING API') result_url = deepdraw_product_matting( url, pic_id, result_obj_name) #调用抠图接口 result_url_list.append(result_url) else: print('CALLING API') result_url = deepdraw_product_matting( url, pic_id, result_obj_name) result_url_list.append(result_url) ret = { 'code': 1001, 'msg': '抠图成功', # 'task_id':obj.id, #'url_list':url_list, # 'result_url_list':result_url_list,#'result_pic':rmbg_pic_url_list, #'result_pic':deepdraw_pic_url_list, } except: #Exception as e: ret = { 'code': 1002, 'msg': '抠图失败', 'org_pic': org_pic, #'url_list':url_list, #'source_obj':source_obj, #'new_obj_name':new_obj_name, } return JsonResponse(ret)
def __init__(self, accessKeyId, accessKeySecret, endpoint, bucket): oss_auth = oss2.Auth(accessKeyId, accessKeySecret) self.oss_bucket = oss2.Bucket(oss_auth, endpoint, bucket)
def post(self, request, *args, **kwargs): data = request.data token = data['token'] user_id = str(data['user_id']) org_pic = data['org_pic'].split(',') org_pic_name = data['org_pic_name'] #.split(',') error_pic_name = data['org_pic_name'] #.split(',') print('--org_pic:' + str(org_pic)) ''' if len(org_pic) != len(org_pic_name): ret = {'code': 1003, 'msg': '图片统计错误', } return JsonResponse(ret) ''' test_obj = UserToken.objects.filter(user_id=user_id, token=token) if not test_obj: ret = { 'code': 1000, 'msg': '认证失败', } return JsonResponse(ret) else: print('permision_ok') # source_obj = org_pic[0] # print(source_obj) # print(type(org_pic)) try: obj = TaskInfo.objects.create( user_id=str(data['user_id']), task_status=data['task_status'], org_pic=str(data['org_pic']), org_pic_name=str(data['org_pic_name']), error_pic_name=str(data['error_pic_name'])) ctime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #oss_rename(user_id, org_pic) import oss2 #ret = oss_rename(user_id, org_pic) auth = oss2.Auth('LTAIDGyxdSloVIAu', 'WVOPeB83DdojWcfs3wF6X6Ry0XNZYU') # Endpoint以杭州为例,其它Region请按实际情况填写。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'deepdraw-test') pic_id_list = creat_pic(org_pic, org_pic_name, user_id, error_pic_name, obj.id) #for source_obj in org_obj: url_list = [] result_url_list = [] for source_obj, pic_id in zip(org_pic, pic_id_list): print('pic_id:' + str(pic_id)) try_count = 0 #@retry() def rename(source_obj, try_count): try_count = try_count + 1 print('第{}次重试oss命名。'.format(try_count)) file_name = 'wzs_test.' + source_obj.split('.')[-1] #source_obj = str(user_id)+'/pic/'+uuid+'.png' # 下载OSS文件到本地文件。如果指定的本地文件存在会覆盖,不存在则新建。 bucket.get_object_to_file(source_obj, file_name) #计算MD5 md5 = image_md5(file_name) #生成新obj名字 new_obj_name = 'input_folder/' + str( user_id ) + '/pic/' + md5[: 2] + '/' + md5 + '.' + source_obj.split( '.')[-1] result_obj_name = 'input_folder/' + str( user_id ) + '/pic/' + md5[: 2] + '/result_' + md5 + '.' + source_obj.split( '.')[-1] # print(source_obj) # print(new_obj_name) #通过copy-delete重命名 bucket.copy_object('deepdraw-test', source_obj, new_obj_name) bucket.delete_object(source_obj) print('-----------source_obj:' + source_obj) url = 'https://deepdraw-test.oss-cn-hangzhou.aliyuncs.com/' + new_obj_name url_list.append(url) print('-----------rename-oss-url:' + url) return url, result_obj_name #url,result_obj_name = rename(source_obj,try_count) #md5后端重命名:input_folder/user_id/pic/md5[:2]/md5.png url = 'https://deepdraw-test.oss-cn-hangzhou.aliyuncs.com/' + source_obj #不重命名:user_id/pic/task_uuid/0.png result_obj_name = 'result/' + source_obj #不重命名 url_list.append(url) if len(org_pic) == 1: result_url = deepdraw_product_matting( url, pic_id, result_obj_name) #调用抠图接口 print('CALLING API') result_url_list.append(result_url) else: result_url = deepdraw_product_matting( url, pic_id, result_obj_name) print('CALLING API') result_url_list.append(result_url) pass # if len(org_pic) != 1: # result_url = deepdraw_product_matting(url,pic_id) #调用抠图接口 # print('CALLING API') # result_url_list.append(result_url) #result_url_list= deepdraw_batch(url_list,pic_id_list) #rmbg_pic_url_list = ess_sdk(user_id,url_list,org_pic) #remove.bg接口,要配置ssl证书 #deepdraw_pic_url_list = deepdraw_product_matting() ret = { 'code': 1001, 'msg': '抠图成功', 'ctime': ctime, 'task_id': obj.id, 'pic_id_list': pic_id_list, 'url_list': url_list, 'result_url_list': result_url_list, #'result_pic':rmbg_pic_url_list, #'result_pic':deepdraw_pic_url_list, } except: #Exception as e: ret = { 'code': 1002, 'msg': '抠图失败', 'org_pic': org_pic, #'url_list':url_list, #'source_obj':source_obj, #'new_obj_name':new_obj_name, } return JsonResponse(ret)
def post(self, request, *args, **kwargs): data = request.data token = data['token'] user_id = data['user_id'] org_pic = data['org_pic'] #.split(',') org_pic_name = data['org_pic_name'] #.split(',') error_pic_name = data['org_pic_name'] #.split(',') bg = data['bg'] size = data['size'] org_size = data['org_size'] print('--org_pic:' + str(org_pic)) test_obj = UserToken.objects.filter(user_id=user_id, token=token) if not test_obj: ret = { 'code': 1000, 'msg': '认证失败', } return JsonResponse(ret) else: print('permision_ok') try: obj = TaskInfo.objects.create( user_id=data['user_id'], task_status=data['task_status'], org_pic=data['org_pic'], org_pic_name=data['org_pic_name'], error_pic_name=data['error_pic_name'], bg=bg, size=size, org_size=org_size, ) url_list = [] for source_obj in org_pic: url = 'https://deepdraw-test.oss-cn-hangzhou.aliyuncs.com/' + source_obj url_list.append(url) ctime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #oss_rename(user_id, org_pic) import oss2 #ret = oss_rename(user_id, org_pic) auth = oss2.Auth('LTAIDGyxdSloVIAu', 'WVOPeB83DdojWcfs3wF6X6Ry0XNZYU') # Endpoint以杭州为例,其它Region请按实际情况填写。 bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'deepdraw-test') pic_id_list = creat_pic_v2(org_pic, org_pic_name, user_id, error_pic_name, obj.id, bg, size, org_size) ret = { 'code': 1001, 'msg': '任务提交成功', 'task_id': obj.id, 'pic_id_list': pic_id_list, 'url_list': url_list, } except: ret = { 'code': 1000, 'msg': '任务提交失败', } return JsonResponse(ret)
from backend.test import * import oss2 from backend.utils.call_metadata import get_identifier auth = oss2.Auth('LTAI6huPFcsniRHT', 'Qo7kumR85OhK6nbez0IVKyTWYX4Beq') bucket = oss2.Bucket(auth, 'oss-cn-shenzhen.aliyuncs.com', 'bucket-for-2019-hitsz') class TestDelete(unittest.TestCase): def test_delete(self): self.assertEqual( delete_document(document_id='5d0f2f7c3e02f9e99c246720', user_id='5d0f29a33e02f9e99c246717'), 200) class UploadTest(unittest.TestCase): def test_upload(self): f = open('doi.pdf', 'rb') a = bucket.put_object('Unittest.pdf', f) f.close() self.assertEqual(type(a), oss2.models.PutObjectResult) class GetIdentifierTest(unittest.TestCase): def test_get_id(self): identifier = {'doi': '10.1016/j.patcog.2012.09.005'} f1 = open('doi.pdf', 'rb') j = get_identifier(f1) f1.close() self.assertEqual(j, identifier)
def set_up(cls): if cls.bucket is None: auth = oss2.Auth(cls.AKID, cls.AK_SEC) cls.bucket = oss2.Bucket(auth, cls.ENDPOINT, cls.BUCKET, connect_timeout=1)
def __init__(self, bucket): self.bucket_name = bucket self.region = 'oss-cn-hangzhou.aliyuncs.com' self.auth = oss2.Auth('LTAI4bC7jVIhaiNm', 'Eqc42Xv1hOcBZVaNhwtjHERQqW8qVh') self.bucket = oss2.Bucket(self.auth, 'http://{}'.format(self.region), self.bucket_name)
# 阿里云上传备份 import oss2 import time import os import shutil from itertools import islice Access_Key_ID = 'BjvM10cmtaCKpnuF' Access_Key_Secret = 'tWChZrQKfjvTDD8FJQzm9m06mogE96' endpoint = 'oss-cn-hangzhou.aliyuncs.com' auth = oss2.Auth(Access_Key_ID, Access_Key_Secret) service = oss2.Service(auth, endpoint, connect_timeout=30) #print([b.name for b in oss2.BucketIterator(service)]) bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', 'wbs') print(bucket.bucket_name) number = input('no:') path = input('part:') # C:\Users\Administrator\DataScraperWorks #for b in islice(oss2.ObjectIterator(bucket), 10): # print(b.key) #bucket.put_object_from_file('remote.txt', 'local.txt') #bucket.get_object_to_file('remote.txt', 'local-backup.txt') os.chdir(r'D:\recdate\hdusec-3\DataScraperWorks\search_part1') if not os.path.exists('./ok'): os.mkdir('./ok') ISOTIMEFORMAT = '%Y-%m-%d %X' file_list = [] while True: currentDirFiles = os.listdir("./")
import oss2 from bucket.bucket_setting import BUCKET_INFO from itertools import islice AKI = BUCKET_INFO['access_key_id'] AKS = BUCKET_INFO['access_key_secret'] BN = BUCKET_INFO['bucket_name'] INT_INSIDER = BUCKET_INFO['internal_endpoint'] INT_OUTSIDER = BUCKET_INFO['intranet_endpoint'] INT_SPEEDUP = BUCKET_INFO['speedup_endpoint'] PERMISSION = BUCKET_INFO['permission'] AUTH = oss2.Auth(AKI, AKS) BUCKET = oss2.Bucket(AUTH, INT_INSIDER, BN) class uploadobj(): def simpleupload(self, objname, uploadobj, islocalfile=False): """ 简单上传 :param objname: str,bucket完整路径 :param uploadobj: 上传的对象,可以是字符串,Bytes,Unicode,本地文件路径,网络流 :islocalfile: True是本地文件 :return: PutObjectResult <oss2.models.PutObjectResult> """ if islocalfile: result = BUCKET.put_object_from_file(objname, uploadobj) return result else: result = BUCKET.put_object(objname, uploadobj) return result
# 参数说明: # 参数1: 需要备份的文件路径 # 参数2: 远端的目录, 不能以'/'作为开头和结尾 import os import sys import time import oss2 from oss2 import SizedFileAdapter, determine_part_size from oss2.models import PartInfo from tools import weChatMsg # OSS相关验证信息 auth = oss2.Auth('<KEY>','<SECRET>') endpoint = '<ENDPOINT>' bucket = oss2.Bucket(auth, endpoint, '<BUCKET>') # 企业微信相关信息 corpid = '<CORPID>' agentId = <AGENGID> corpsecret = '<CORP_SECRET>' url = 'https://qyapi.weixin.qq.com' if len(sys.argv) != 3: print("参数不正确!") exit(1) # 获取备份文件名 if os.path.exists(sys.argv[1]): filename = sys.argv[1]
def init_bucket(): auth = oss2.Auth('LTAInxELbFWfNSjr', 'Nu0UxZpZcpNBeJJAfvLRKUgmSARZFV') bucket = oss2.Bucket(auth, 'oss-cn-hangzhou.aliyuncs.com', 'xxroom') return bucket
def save_models(self): shop_obj = self.new_obj # 获取当前登录用户 shop_manager = None try: shop_manager = ShopManager.objects.get(user_ptr_id=self.user.id) except: shop_manager = None # current_shop_id = shop_manager.shop_id shop_obj.save() # 店铺展示图片 if shop_obj.shop_img != None: current_time_prefix = datetime.datetime.now().strftime( "%Y_%m_%d_%H_%M_%S_%f")[:-3] img_link_name = shop_obj.shop_img.name[shop_obj.shop_img.name. rfind('/') + 1:] full_img_link_name = "shop_cert_front_" + current_time_prefix + '_' + img_link_name imgpath = settings.MEDIA_ROOT + '/' + shop_obj.shop_img.name bucket = oss2.Bucket(oss_auth, oss_cname, 'juye-yiyuanduobao', is_cname=True) bucket.put_object_from_file(full_img_link_name, imgpath) shop_obj.shop_img_oss_link = settings.OSS_PATH_PREFIX + full_img_link_name # 证件正面图片 if shop_obj.cert_front != None: current_time_prefix = datetime.datetime.now().strftime( "%Y_%m_%d_%H_%M_%S_%f")[:-3] img_link_name = shop_obj.cert_front.name[shop_obj.cert_front.name. rfind('/') + 1:] full_img_link_name = "shop_cert_front_" + current_time_prefix + '_' + img_link_name imgpath = settings.MEDIA_ROOT + '/' + shop_obj.cert_front.name bucket = oss2.Bucket(oss_auth, oss_cname, 'juye-yiyuanduobao', is_cname=True) bucket.put_object_from_file(full_img_link_name, imgpath) shop_obj.cert_front_link = settings.OSS_PATH_PREFIX + full_img_link_name # 证件反面图片 if shop_obj.cert_back != None: current_time_prefix = datetime.datetime.now().strftime( "%Y_%m_%d_%H_%M_%S_%f")[:-3] img_link_name = shop_obj.cert_back.name[shop_obj.cert_back.name. rfind('/') + 1:] full_img_link_name = "shop_cert_front_" + current_time_prefix + '_' + img_link_name imgpath = settings.MEDIA_ROOT + '/' + shop_obj.cert_back.name bucket = oss2.Bucket(oss_auth, oss_cname, 'juye-yiyuanduobao', is_cname=True) bucket.put_object_from_file(full_img_link_name, imgpath) shop_obj.cert_back_link = settings.OSS_PATH_PREFIX + full_img_link_name shop_obj.save() if shop_manager and shop_manager.is_agent == True: # 如果是代理商 shop_manager.agent_shops.add(shop_obj) shop_manager.save()
def download(filename): auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret') bucket = oss2.Bucket(auth, '您的Endpoint', '您的Bucket名') bucket.get_object_to_file(filename, filename, progress_callback=percentage)
def __init__(self, access_key_id, access_key_secret): # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。 __auth = oss2.Auth(access_key_id, access_key_secret) # Endpoint以杭州为例,其它Region请按实际情况填写。 self._bucket = oss2.Bucket(__auth, settings.oss_endpoint, settings.oss_bucket)
# -*- encoding: utf-8 -*- import copy, uuid, base64, urllib, xlrd, xlwt, oss2, json auth = oss2.Auth('LTAIy1XF2bUUWM6N', 'GqomKcGskXOIQdbHVVHmMiIrqjjavp') bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou-internal.aliyuncs.com', 'image-hub360-b2b') # 准备回调参数 callback_dict = {} callback_dict['callbackUrl'] = 'http://oss-demo.aliyuncs.com:23450' callback_dict['callbackHost'] = 'oss-cn-hangzhou.aliyuncs.com' callback_dict[ 'callbackBody'] = 'filename=${object}&size=${size}&mimeType=${mimeType}' callback_dict['callbackBodyType'] = 'application/x-www-form-urlencoded' # 回调参数是json格式,并且需要base64编码 callback_param = json.dumps(callback_dict).strip() base64_callback_body = base64.b64encode(callback_param) # 回调参数编码后放在header中传给oss headers = {'x-oss-callback': base64_callback_body} # 上传并回调 result = bucket.put_object('/Users/king/Desktop/upc.xls', 'a' * 1024 * 1024, headers) print result
def __init__(self, bucket): self._auth = oss2.Auth(ALI_ACCESSKEYID, ALI_ACCESSKEYSECRET) self._bucket = oss2.Bucket(self._auth, OSS_ENDPOINT, bucket)
def handler(event, context): uid_count = 20 d_list = [201801, 201802, 201803, 201804, 201805] # d_list = [201801,201802,201803,201804,201805,201806,201807,201808,201809,201810,201811] user_list = ['*****@*****.**'] tmpdir = '/tmp/weibo/' # oss region = "cn-hangzhou-internal" bucketname = "leo-hangzhou" oss_uid_list = "configuration/weibo_uid_list" oss_json_path = "process/weibo_json/" # table storehang'zhou instance_name = 'leo-ts-hangzhou' ts_log = 'table_store.log' tbl = 'log_weibo' err_tbl = 'log_weibo_error' ts_region = 'cn-hangzhou.ots' ts_endpoint = 'https://{0}.{1}.aliyuncs.com'.format( instance_name, ts_region) access_key_id = 'LTAIi3mUQglhfB3D' access_key_secret = 'y4acQJO0QkoCbaPipQDFD2idfNOVqJ' datekey_uid = int((datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y%m%d')) os.system("rm -rf /tmp/*") os.mkdir(tmpdir) logger = logging.getLogger() logger.info( (datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') + '--------------------------------------------------------------------------------------' ) logger.info((datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') + ' Start WeiboUid') endpoint = 'oss-{0}.aliyuncs.com'.format(region) creds = context.credentials auth = oss2.StsAuth(creds.accessKeyId, creds.accessKeySecret, creds.securityToken) bucket = oss2.Bucket(auth, endpoint, bucketname) # get the weibo uids uids = [] logger.info((datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') + ' Step 1 : get weibo uids from oss') # if the uid_list is not exists if bucket.object_exists(oss_uid_list): content = bucket.get_object(oss_uid_list) uids = content.read().decode('utf-8').split("\r\n") uids.sort() else: logger.info((datetime.datetime.utcnow() + datetime.timedelta(hours=8) ).strftime('%Y-%m-%d %H:%M:%S') + ' ERROR!!! cant find uids file from oss') exit(1) # uids=["1817559703"] # initialize the uids logger.info((datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') + ' Step 2 : initialize the uids status') # connect to the table store ots_client = OTSClient(ts_endpoint, access_key_id, access_key_secret, instance_name, socket_timeout=10, logger_name=ts_log) for uid in uids: pk = [('uid', int(uid))] # if no this uid if get_col(ots_client, tbl, pk, ['status'], None) == 'NoData': attr = [ ('status', 'waiting'), ('update_timestamp', (datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')), ('update_time', int(time.time())) ] put_row(ots_client, tbl, pk, attr) # get last runtime logger.info((datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') + ' Step 3 : get the last runtime status') pk = [('uid', datekey_uid)] checkpoint = 0 last_runtime = int(time.time()) last_runtimestamp = ( datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') # if no last runtime status record, initialize if get_col(ots_client, tbl, pk, ['update_time'], None) == 'NoData' or get_col( ots_client, tbl, pk, ['status'], None) != ','.join(uids): attr = [('name', datekey_uid), ('status', ','.join(uids)), ('update_timestamp', last_runtimestamp), ('update_time', last_runtime), ('checkpoint', checkpoint)] put_row(ots_client, tbl, pk, attr) # if no change, get the last checkpoint else: cols = ['checkpoint'] checkpoint = get_col(ots_client, tbl, pk, cols, None) logger.info((datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') + ' last runtime checkpoint is ' + str(checkpoint)) # loop uid to analysis logger.info((datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') + ' Step 4 : start to analysis weibo content') print( str(checkpoint) + ' ' + str(len(uids)) + ' ' + str(get_col(ots_client, tbl, pk, ['name'], None))) # if all the uids are analysed today if checkpoint + 1 >= len(uids) and get_col(ots_client, tbl, pk, ['name'], None) == datekey_uid: logger.info( (datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') + ' Step 5 : all the uids are analysed today! exit the script! (checkpoint:' + str(checkpoint) + ' totally:' + str(len(uids)) + ')') return 'Congratulations! no uids are left! ' + ( datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') # if this is the last run if checkpoint + uid_count > len(uids): endp = len(uids) else: endp = checkpoint + uid_count # loop current run for i in range(checkpoint, endp): logger.info((datetime.datetime.utcnow() + datetime.timedelta(hours=8) ).strftime('%Y-%m-%d %H:%M:%S') + ' Step 5 (' + str(i + 1) + '/' + str(endp) + ') : start to analyse uid: ' + uids[i]) request_status = '' # loop the months for d in d_list: try: logger.info((datetime.datetime.utcnow() + datetime.timedelta( hours=8)).strftime('%Y-%m-%d %H:%M:%S') + ' Step 5.1 start to analyse uid: ' + uids[i] + ' date: ' + str(d)) loop_starttime = (datetime.datetime.utcnow() + datetime.timedelta(hours=8)) # get the weibo content request_page = 1 global content_j page_hasNext = True # 怎么判断pageToken while page_hasNext: content_j = weibo_content(uids[i], d, request_page) page_hasNext = content_j['hasNext'] request_status = content_j["retcode"] print('start to unload page ' + str(request_page) + '......') for content_data in content_j['data']: publish_year = content_data['mblog'][ 'localPublishDateStr'][0:4] publish_month = content_data['mblog'][ 'localPublishDateStr'][5:7] publish_date = content_data['mblog'][ 'localPublishDateStr'][8:10] json_file = oss_json_path + publish_year + '/' + publish_month + '/' + publish_date + '/' + str( uids[i]) + '/' + content_data['id'] + '.json' # bucket.put_object(json_file, json.dumps(content_data)) bucket.put_object(json_file, '{0}'.format(content_data)) print('page ' + str(request_page) + " finished......") time.sleep(1) request_page = request_page + 1 print(str(uids[i]) + str(d) + '解析完毕......') except Exception as e: request_status = str(e) pk = [('uid', int(uids[i])), ('datekey', datekey_uid)] attr = [('error_log', str(e)), ('update_timestamp', (datetime.datetime.utcnow() + datetime.timedelta( hours=8)).strftime('%Y-%m-%d %H:%M:%S')), ('update_time', int(time.time()))] put_row(ots_client, err_tbl, pk, attr) logger.info((datetime.datetime.utcnow() + datetime.timedelta( hours=8)).strftime('%Y-%m-%d %H:%M:%S') + '"' + str(uids[i]) + ' ' + str(d) + ' "解析失败????...:' + str(e)) time.sleep(1) # if finished pk = [('uid', int(uids[i]))] attr = [('name', int(uids[i])), ('status', str(request_status)), ('update_timestamp', (datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')), ('update_time', int(time.time()))] put_row(ots_client, tbl, pk, attr) # if finished pk = [('uid', datekey_uid)] attr = [('name', datekey_uid), ('status', ','.join(uids)), ('update_timestamp', (datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')), ('update_time', int(time.time())), ('checkpoint', i)] put_row(ots_client, tbl, pk, attr) # sub = str(len(uids)) + ' uids are requested finished! pls check the log?' # content = 'log link : XXXXX?' # send_mail(user_list, sub, content) if checkpoint + 1 >= len(uids) and get_col(ots_client, tbl, pk, ['name'], None) == datekey_uid: logger.info( (datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S') + ' Step 6 : all the uids are analysed today! exit the script! (checkpoint:' + str(checkpoint) + ' totally:' + str(len(uids)) + ')') sub = str( len(uids)) + ' uids are requested finished! pls check the log?' content = 'log link : XXXXX?' send_mail(user_list, sub, content) return 'Congratulations! ' + ( datetime.datetime.utcnow() + datetime.timedelta(hours=8)).strftime('%Y-%m-%d %H:%M:%S')
#os.path.abspath(os.curdir) def dirlist(path): for file in os.listdir(path): filepath = os.path.join(path, file) if os.path.isdir(filepath): dirlist(filepath) elif not filepath.endswith("robots.txt"): allfile.append(filepath) dirlist(curdir) auth = oss2.Auth(conf['OSS']['AccessKeyId'], conf['OSS']['AccessKeySecret']) bucket = oss2.Bucket(auth, conf['OSS']['EndPoint'], conf['OSS']['Bucket']) for file in allfile: ret = bucket.put_object_from_file(file.replace(curdir, "limon"), file) print(ret.status, " ", file) for file in allfile: if file.find('index.html') >= 0 or file.find('manifest.json') >= 0: continue os.system('rm -rf ' + file) print( os.system('rm -rf ' + file), 'rm -rf ' + file, )
def to_import_execl(self, request, objs): try: BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) MEDIA_ROOT = os.path.join(BASE_DIR, 'media/') # 写入execl path = MEDIA_ROOT + 'download_xls/' + request.user.username # if not os.path.exists(path): mkdir_p(MEDIA_ROOT + 'download_xls') os.popen('chmod 777 %s' % (MEDIA_ROOT + 'download_xls')) mkdir_p(path) os.popen('chmod 777 %s' % (path)) w = Workbook() row = 0 sheet = w.add_sheet(u'校验交付数据') style = XFStyle() sheet.write(0, 0, u'日期', style) # 日期 sheet.write(0, 1, u'SKU', style) # SKU sheet.write(0, 2, u'采购员', style) # 采购员 sheet.write(0, 3, u'商品名称', style) # 商品名称 sheet.write(0, 4, u'建议采购数量', style) # 建议采购数量 sheet.write(0, 5, u'采购数量', style) # 采购数量 sheet.write(0, 6, u'完成数量', style) # 完成数量 sheet.write(0, 7, u'采购备注', style) # 采购备注 sheet.write(0, 8, u'派发工厂', style) # 派发工厂 sheet.write(0, 9, u'排单备注', style) # 排单备注 sheet.write(0, 10, u'生产天数', style) # 生产天数 sheet.write(0, 11, u'采购等级', style) # 采购等级 for obj in objs: row = row + 1 if obj.createDate is not None: sheet.write(row, 0, str(obj.createDate), style) # 日期 else: sheet.write(row, 0, '', style) # 日期 sheet.write(row, 1, obj.SKU, style) # SKU if obj.buyer is not None: sheet.write(row, 2, obj.buyer, style) # 采购员 else: sheet.write(row, 2, '', style) # 采购员 if obj.goodsName is not None: sheet.write(row, 3, obj.goodsName, style) # 商品名称 else: sheet.write(row, 3, '', style) # 商品名称 if obj.SuggestNum is not None: sheet.write(row, 4, obj.SuggestNum, style) # 建议采购数量 else: sheet.write(row, 4, 0, style) # 建议采购数量 if obj.productNumbers is not None: sheet.write(row, 5, obj.productNumbers, style) # 采购数量 else: sheet.write(row, 5, 0, style) # 采购数量 if obj.completeNumbers is not None: sheet.write(row, 6, obj.completeNumbers, style) # 完成数量 else: sheet.write(row, 6, 0, style) # 完成数量 strRemark = '' if obj.remarkApply is not None: strRemark = obj.remarkApply if obj.remarkSpeModify is not None: strRemark = strRemark + "," +obj.remarkSpeModify if obj.remarkConfirm is not None: strRemark = strRemark + "," + obj.remarkConfirm else: if obj.remarkConfirm is not None: strRemark = strRemark + "," + obj.remarkConfirm else: if obj.remarkSpeModify is not None: strRemark = strRemark + "," + obj.remarkSpeModify if obj.remarkConfirm is not None: strRemark = strRemark + "," + obj.remarkConfirm else: if obj.remarkConfirm is not None: strRemark = strRemark + "," + obj.remarkConfirm sheet.write(row, 7, strRemark, style) # 采购备注 sheet.write(row, 8, obj.outFactory, style) # 派发工厂 if obj.remarkDisPatch is not None: sheet.write(row, 9, (obj.remarkDisPatch).replace("#@#",';'), style) # 排单备注 else: sheet.write(row, 9, '', style) # 排单备注 diffDay = 0 if obj.auditDate is not None: diffDay = (confirmDate.now() - obj.auditDate).days sheet.write(row, 10, str(diffDay), style) # 生产天数 if obj.OSCode is None or obj.OSCode == 'OS905': # 采购等级 sheet.write(row, 11, u'OS905:工期5天(建议采购15天量、联动采购16~17天量)', style) elif obj.OSCode == 'OS901': # 采购等级 sheet.write(row, 11, u'OS901:工期3天(建议采购10天量、联动采购11~14天量)', style) elif obj.OSCode == 'OS902': # 采购等级 sheet.write(row, 11, u'OS902:工期5天(建议采购15天量、联动采购16~17天量)', style) elif obj.OSCode == 'OS903': # 采购等级 sheet.write(row, 11, u'OS903:工期7天(建议采购15天量、联动采购16~19天量)', style) elif obj.OSCode == 'OS904': # 采购等级 sheet.write(row, 11, u'OS904:工期15天(建议采购20天)', style) elif obj.OSCode == 'OS906': # 采购等级 sheet.write(row, 11, u'OS906:工期5天(Amazon服装采购)', style) elif obj.OSCode == 'OS909': # 采购等级 sheet.write(row, 11, u'OS909:工期5天(建议采购20天量)', style) else: sheet.write(row, 11, u'OS905:工期5天(建议采购15天量、联动采购16~17天量)', style) filename = request.user.username + '_' + confirmDate.now().strftime('%Y%m%d%H%M%S') + '.xls' w.save(path + '/' + filename) os.popen(r'chmod 777 %s' % (path + '/' + filename)) # 上传oss对象 auth = oss2.Auth(ACCESS_KEY_ID, ACCESS_KEY_SECRET) bucket = oss2.Bucket(auth, ENDPOINT, BUCKETNAME_XLS) bucket.create_bucket(oss2.BUCKET_ACL_PUBLIC_READ) # 删除现有的 for object_info in oss2.ObjectIterator(bucket, prefix='%s/%s_' % (request.user.username, request.user.username)): bucket.delete_object(object_info.key) bucket.put_object(u'%s/%s' % (request.user.username, filename), open(path + '/' + filename)) except Exception as e: messages.info(self.request,"导出数据到execl报错:%s,请联系开发人员"%(str(e)))
#encoding:utf-8 import oss2 import os, sys from datetime import datetime auth = oss2.Auth('LTAIkjj8twuSyGfv', 'EI8KJb6iCpPAytr4mqd4u3Zm9fNsh9') bucket = oss2.Bucket(auth, 'oss-cn-beijing.aliyuncs.com', 'donghaocms') base_posts_url = 'https://donghaocms.oss-cn-beijing.aliyuncs.com/posts/' base_avater_url = 'https://donghaocms.oss-cn-beijing.aliyuncs.com/avater/' base_groups_url = 'https://donghaocms.oss-cn-beijing.aliyuncs.com/groups/' base_images_url = 'https://donghaocms.oss-cn-beijing.aliyuncs.com/images/' bucket_post = oss2.Bucket(auth, 'oss-cn-beijing.aliyuncs.com', 'donghaocms') def change_filename(filename): dt = datetime.now() time = dt.strftime('%Y%m%d%H%M%S') filename = time + filename return filename def percentage(consumed_bytes, total_bytes): if total_bytes: rate = int(100 * (float(consumed_bytes) / float(total_bytes))) print('\r{0}% '.format(rate), end='') sys.stdout.flush()
import oss2 auth = oss2.Auth('LTAIKdjn445KIAfy', 'd78fFsDltKYIRC5mrsP6yIvGbtWshb') bucket = oss2.Bucket(auth, 'mgwebsite.oss-cn-shanghai.aliyuncs.com', 'mgwebsite') bucket.create_bucket()
def download(auth, url, bucketName, videoName, sourceName): bucket = oss2.Bucket(auth, url, bucketName) bucket.get_object_to_file(videoName, sourceName)
# Create your views here. from django.shortcuts import render from django.http import HttpResponse, JsonResponse from rest_framework.views import APIView from xinyada.models import PicInfo import shutil, rarfile, zipfile, os, sys import oss2 auth = oss2.Auth('LTAIDGyxdSloVIAu', 'WVOPeB83DdojWcfs3wF6X6Ry0XNZYU') # Endpoint以杭州为例,其它Region请按实际情况填写。 bucket = oss2.Bucket(auth, 'oss-cn-shanghai-internal.aliyuncs.com', 'deepdraw-zip') # Create your views here. def get_uuid(): import uuid return str(uuid.uuid1()) class indexView(APIView): def get(self, request, *args, **kwargs): return HttpResponse(content=open("./templates/xinyada.html").read()) class index_v2_View(APIView): def get(self, request, *args, **kwargs): return HttpResponse(content=open("./templates/xinyada_v1.html").read()) class analysisView(APIView): def post(self, request, *args, **kwargs):