示例#1
0
    def delThenSetToSAEStorage(filename, data):
        monkey.patch_all()
        bucket = Bucket('media')
        bucket.put()
        bucket.post(
            acl=
            '.r:.sinaapp.com,.r:sae.sina.com.cn,.r:.vipsinaapp.com,.r:.qq.com,.r:.wx.qq.com',
            metadata={'expires': '7d'})
        tmp = __method_get_namelist(filename)
        if tmp == None:
            return None
        filetype = tmp[1]

        if filetype.lower() in ('jpg', 'jpeg', 'bmp', 'gif', 'png'):
            filepath = 'image/' + filename
        elif filetype.lower() in ("swf", "wmv"):
            filepath = 'video/' + filename
        elif filetype.lower() in ("wma", "mp3"):
            filepath = 'music/' + filename
        else:
            filepath = filename

        try:
            bucket.delete_object(filepath)
        except Exception:
            pass

        bucket.put_object(filepath, data)
        return bucket.generate_url(filepath)
示例#2
0
文件: views.py 项目: firsthym/rebang
def put_obj2storage(file_name = '', data = '', expires='365', type=None, encoding= None, domain_name = setting.STORAGE_DOMAIN_NAME):
    import sae.const  
    access_key = sae.const.ACCESS_KEY  
    secret_key = sae.const.SECRET_KEY  
    appname = sae.const.APP_NAME  
    domain_name = "attachment" 
    bucket = Bucket(domain_name)
    bucket.put()
    bucket.post(metadata={'expires': '2d'})
    attrs = bucket.stat()
    bucket.put_object(file_name, data)
    file_url = bucket.generate_url(file_name)
    #begin to created
    im = Image.open("/s/attachment/" + file_name)
    #im = Image.open(bucket.get_object_contents(file_name))
    im.thumbnail((320,200))
    #im.save("/s/attachment/" + file_name+"_thumbnail.jpg")
    imgext = re.search("(\.\w*)$", file_name)
    if imgext:
        thumbnail_name = file_name + "_thumbnail"+ imgext.group(1)
    else:                
        thumbnail_name = file_name + "_thumbnail.jpg"
    pureext = imgext.group(1)[1:]
    if pureext == "jpg":
        pureext = "jpeg"
    #bucket.put_object(thumbnail_name, im.tostring('jpeg', 'RGB'))
    bucket.put_object(thumbnail_name, im.tostring("jpeg", 'RGB'))
    thumbnail_url = bucket.generate_url(thumbnail_name)
    #s = sae.storage.Client()
    #ob = sae.storage.Object(data = data, cache_control='access plus %s day' % expires, content_type= type, content_encoding= encoding)
    return file_url, thumbnail_url
示例#3
0
def imgupload(req):
	username = req.session.get("username",'')
	if username == '':
		return HttpResponseRedirect('/admin')
	else:
		if req.POST:
			post = req.POST
			if req.FILES:
				img = req.FILES['img']
				# s = Client()
				bucket = Bucket('img')
				# st = bucket.conn.__dict__
				# if bucket.stat()['bytes'] == '0':
				bucket.put()
				bucket.post(acl='.r:.sinaapp.com,.r:sae.sina.com.cn')
				tut = img._name.split('.')[-1]
				dt_str = datetime.strftime(datetime.now(),'%Y%m%d%H%M%S')
				filename = dt_str + str(randint(100,999)) + '.' + tut
				bucket.put_object(filename,img)
				# s.put('hitmstcweb',filename,img)
				image = Img(
							name = post.get('name','dt_str'), \
							descripe = post.get('descripe',''), \
							img = bucket.generate_url(filename), \
							author = User.objects.get(username = username), \
							)
				image.save()
	content = {'last_event':get_last_event()}
	return render_to_response('imgupload.html',content,context_instance = RequestContext(req));
示例#4
0
def imgupload(req):
    username = req.session.get("username", '')
    if username == '':
        return HttpResponseRedirect('/admin')
    else:
        if req.POST:
            post = req.POST
            if req.FILES:
                img = req.FILES['img']
                # s = Client()
                bucket = Bucket('img')
                # st = bucket.conn.__dict__
                # if bucket.stat()['bytes'] == '0':
                bucket.put()
                bucket.post(acl='.r:.sinaapp.com,.r:sae.sina.com.cn')
                tut = img._name.split('.')[-1]
                dt_str = datetime.strftime(datetime.now(), '%Y%m%d%H%M%S')
                filename = dt_str + str(randint(100, 999)) + '.' + tut
                bucket.put_object(filename, img)
                # s.put('hitmstcweb',filename,img)
                image = Img(
                   name = post.get('name','dt_str'), \
                   descripe = post.get('descripe',''), \
                   img = bucket.generate_url(filename), \
                   author = User.objects.get(username = username), \
                   )
                image.save()
    content = {'last_event': get_last_event()}
    return render_to_response('imgupload.html',
                              content,
                              context_instance=RequestContext(req))
示例#5
0
def checktest(tt):
    def gpng(txt):
        url = 'https://api.handwriting.io/render/png'
        params = {
            'handwriting_id': '2D5S18M00002',
            'handwriting_size': 'auto',
            'width': '500px',
            'height': '320px',
            'line_spacing': '1.5',
            'line_spacing_variance': 0.1,
            'text': 'Though bladed corn be lodged and trees blown down'
        }

        params['text'] = txt
        r = requests.get(url, auth=TOKEN_PAIR, params=params)
        return r

    correct_time = time.strftime('%m_%d_%H_%M_%S', time.localtime(time.time()))
    bucket = Bucket('tempic')  #修改成你自己的storage名
    bucket.put()
    bucket.post(acl='.r:*', metadata={'expires': '1d'})
    f = gpng(tt)
    data = f.content
    bucket.put_object(correct_time + ".png", data)
    file_url = bucket.generate_url(correct_time + ".png")
    return file_url
示例#6
0
def put_obj2storage(file_name = '', data = '', expires='365', type=None, encoding= None, domain_name = setting.STORAGE_DOMAIN_NAME):
    import sae.const  
    access_key = sae.const.ACCESS_KEY  
    secret_key = sae.const.SECRET_KEY  
    appname = sae.const.APP_NAME  
    domain_name = "attachment" 
    bucket = Bucket(domain_name)
    bucket.put()
    bucket.post(metadata={'expires': '2d'})
    attrs = bucket.stat()
    bucket.put_object(file_name, data)
    file_url = bucket.generate_url(file_name)
    #begin to created
    im = Image.open("/s/attachment/" + file_name)
    #im = Image.open(bucket.get_object_contents(file_name))
    im.thumbnail((320,200))
    #im.save("/s/attachment/" + file_name+"_thumbnail.jpg")
    imgext = re.search("(\.\w*)$", file_name)
    if imgext:
        thumbnail_name = file_name + "_thumbnail"+ imgext.group(1)
    else:                
        thumbnail_name = file_name + "_thumbnail.jpg"
    pureext = imgext.group(1)[1:]
    if pureext == "jpg":
        pureext = "jpeg"
    #bucket.put_object(thumbnail_name, im.tostring('jpeg', 'RGB'))
    bucket.put_object(thumbnail_name, im.tostring("jpeg", 'RGB'))
    thumbnail_url = bucket.generate_url(thumbnail_name)
    #s = sae.storage.Client()
    #ob = sae.storage.Object(data = data, cache_control='access plus %s day' % expires, content_type= type, content_encoding= encoding)
    return file_url, thumbnail_url
示例#7
0
文件: views.py 项目: yumendy/shsj
def submit_report(req):
	username = req.session.get('username','')
	content = {'active_menu':'submitReport','num_need_check':num_need_check()}
	status = ''
	if username != '':
		user = MyUser.objects.get(user__username = username)
		content['user'] = user
	else:
		return HttpResponseRedirect('/login/')
	if req.POST:
		post = req.POST
		if req.FILES:
			img1 = req.FILES['img1']
			img2 = req.FILES['img2']
			bucket = Bucket('img')
			bucket.put()
			bucket.post(acl='.r:.sinaapp.com,.r:sae.sina.com.cn')
			tut1 = img1._name.split('.')[-1]
			tut2 = img2._name.split('.')[-1]
			if tut1.lower() not in ['jpg','jpeg','bmp','gif','png']:
				tut1 = 'jpg'
			if tut2.lower() not in ['jpg','jpeg','bmp','gif','png']:
				tut2 = 'jpg'
			dt_str = datetime.datetime.strftime(datetime.datetime.now(),'%Y%m%d%H%M%S')
			filename1 = dt_str + str(randint(100,999)) + '.' + tut1
			filename2 = dt_str + str(randint(100,999)) + '.' + tut2
			bucket.put_object(filename1,img1)
			bucket.put_object(filename2,img2)
		info = post.get('info','')
		if len(info) < 500:
			status = 'info_short'
		else:
			report = Report(
							name = post.get('name',''),
							start_time = post.get('start_time',''),
							end_time = post.get('end_time',''),
							address = post.get('address',''),
							status = 1,
							apply_time = 0,
							apply_score = 0,
							report_type = post.get('report_type',''),
							author_type = post.get('author_type',''),
							info_type = post.get('info_type',''),
							author = user,
							img1 = bucket.generate_url(filename1), \
							img2 = bucket.generate_url(filename2), \
							)
			if post.get('info_type','') == '2':
				a = re.compile(r'(<script)(.*)(>)',re.I)
				res = r'&lt;script\2&gt;'
				report.info = a.sub(res,info)
			else:
				report.info = info
			report.save()
			status = 'success'
		content['status'] = status
	return render_to_response('submitreport.html', content, context_instance = RequestContext(req))
示例#8
0
    def listDirOfSAEStorage(path=''):
        monkey.patch_all()
        bucket = Bucket('media')
        bucket.put()
        bucket.post(
            acl=
            '.r:.sinaapp.com,.r:sae.sina.com.cn,.r:.vipsinaapp.com,.r:.qq.com,.r:.wx.qq.com',
            metadata={'expires': '7d'})

        if not path.endswith('/'):
            if path == '':
                pass
            else:
                path = path + '/'

        return [i for i in bucket.list(path)]
示例#9
0
文件: views.py 项目: merrycode/red
def _upload_image(request, field="cover"):
    if 'file' in request.FILES:
        fobj = request.FILES['file']
        content = fobj.read()
        suffix = fobj.name.rsplit('.', 1)[1].lower()
        if suffix not in ('jpg', 'png', 'jpeg'):
            return _error(u'请上传jpg或者png格式的照片')
        md5 = hashlib.md5(content).hexdigest()
        filename = '%s.%s' % (md5, suffix)

        from sae.storage import Bucket
        bucket = Bucket('adam')
        bucket.put()
        bucket.post(acl='.r:.sinaapp.com,.r:sae.sina.com.cn', metadata={'expires': '1y'})
        bucket.put_object(filename, content)
        return bucket.generate_url(filename)
    return request.POST.get(field, '').strip()[0:255]
示例#10
0
    def getFromSAEStorage(filename):
        monkey.patch_all()
        bucket = Bucket('media')
        bucket.put()
        bucket.post(
            acl=
            '.r:.sinaapp.com,.r:sae.sina.com.cn,.r:.vipsinaapp.com,.r:.qq.com,.r:.wx.qq.com',
            metadata={'expires': '7d'})

        filetype = __method_get_namelist(filename)[1]
        if filetype.lower() in ('jpg', 'jpeg', 'bmp', 'gif', 'png'):
            filepath = 'image/' + filename
        elif filetype.lower() in ("swf", "wmv"):
            filepath = 'video/' + filename
        elif filetype.lower() in ("wma", "mp3"):
            filepath = 'music/' + filename
        else:
            filepath = filename
        return bucket.generate_url(filepath)
示例#11
0
文件: files.py 项目: eavae/mlang
class AvatarManager(object):
    def __init__(self,app):
        self.app = app
        self.bucket = Bucket(app.config['STORAGE_NAME'])
        self.bucket.put()
        self.bucket.post(acl='.r:.sinaapp.com,.r:sae.sina.com.cn', metadata={'expires': '1d'})

    def _saveAvatar(self,file,filename,size,sizecode):
        filetype = file.mimetype.split('/')[1]
        img = Image.open(StringIO(file.read()))
        file.seek(0)
        ratio = float(img.size[0]) / img.size[1]
        if ratio > 1:
            length = int(img.size[1]/2)
        else:
            length = int(img.size[0]/2)
        x0,y0 = int(img.size[0]/2),int(img.size[1]/2)
        img = img.crop((x0-length,y0-length,x0+length,y0+length))
        img = img.resize((size,size),Image.ANTIALIAS)

        output = StringIO()
        img.save(output,filetype)
        content = output.getvalue()
        output.close()
        self.bucket.put_object('avatar/'+filename, content, content_type=file.mimetype)

    def saveAvatar(self,file,id):
        filename = str(id)
        self._saveAvatar(file,filename,self.app.config['AVATAR_SIZE_S'],'s')
        self._saveAvatar(file,filename,self.app.config['AVATAR_SIZE_M'],'m')
        self._saveAvatar(file,filename,self.app.config['AVATAR_SIZE_L'],'l')

    def getAvatarUrl(self,id,sizecode):
        try:
            self.bucket.stat_object('avatar/'+str(id)+sizecode)
        except :
            return self.app.config['DEFAULT_AVATAR_URL']+'/'+sizecode
        return self.bucket.generate_url('avatar/'+str(id)+sizecode)
示例#12
0
文件: views.py 项目: yumendy/shsj
def report_edit(req):
	username = req.session.get('username','')
	status = ''
	if username != '':
		user = MyUser.objects.get(user__username = username)
	else:
		return HttpResponseRedirect('/login/')
	Id = req.GET.get('id','')
	try:
		report = Report.objects.get(pk = Id)
	except:
		return HttpResponseRedirect('/reportlist/')
	if report.author != user:
		return HttpResponseRedirect('/reportlist/')
	else:
		if report.status != 1:
			status = 'cannot_edit'
		else:
			if req.POST:
				post = req.POST
				if req.FILES:
					img1 = req.FILES['img1']
					img2 = req.FILES['img2']
					bucket = Bucket('img')
					bucket.put()
					bucket.post(acl='.r:.sinaapp.com,.r:sae.sina.com.cn')
					tut1 = img1._name.split('.')[-1]
					tut2 = img2._name.split('.')[-1]
					if tut1.lower() not in ['jpg','jpeg','bmp','gif','png']:
						tut1 = 'jpg'
					if tut2.lower() not in ['jpg','jpeg','bmp','gif','png']:
						tut2 = 'jpg'
					dt_str = datetime.datetime.strftime(datetime.datetime.now(),'%Y%m%d%H%M%S')
					filename1 = dt_str + str(randint(100,999)) + '.' + tut1
					filename2 = dt_str + str(randint(100,999)) + '.' + tut2
					bucket.put_object(filename1,img1)
					bucket.put_object(filename2,img2)
				info = post.get('info','')
				if len(info) < 500:
					status = 'info_short'
				else:
					report.name = post.get('name','')
					report.start_time = post.get('start_time','')
					report.end_time = post.get('end_time','')
					report.address = post.get('address','')
					report.report_type = post.get('report_type','')
					report.author_type = post.get('author_type','')
					report.info_type = post.get('info_type','')
					try:
						img1 = bucket.generate_url(filename1)
						img2 = bucket.generate_url(filename2)
						report.img1 = img1
						report.img2 = img2
					except:
						pass
					if post.get('info_type','') == '2':
						a = re.compile(r'(<script)(.*)(>)',re.I)
						res = r'&lt;script\2&gt;'
						report.info = a.sub(res,info)
					else:
						report.info = info
					report.save()
					status = 'success'
	content = {'user':user,'active_menu':'submitReport','num_need_check':num_need_check(),'report':report, 'status':status}
	return render_to_response("report_edit.html",content,context_instance = RequestContext(req))