def upimg_save(**kwargs): res = dict(code=1) try: filename = kwargs["filename"] stream = kwargs["stream"] upload_path = kwargs.get("upload_path") or "" if not filename or not stream: return ValueError except (KeyError, ValueError): res.update(msg="Parameter error") else: dn = g.cfg.tencent_dn bucket = g.cfg.tencent_bucket sid = g.cfg.tencent_sid skey = g.cfg.tencent_skey tencent_basedir = g.cfg.tencent_basedir or '' if not dn or not bucket or not sid or not skey: res.update(msg="The tencent parameter error") return res if isinstance(upload_path, string_types): if upload_path.startswith("/"): upload_path = upload_path.lstrip('/') filepath = join(tencent_basedir, upload_path, filename) #: 使用腾讯云云COS官方SDK上传 config = get_config() region = g.cfg.tencent_region if not region: info = get_bucket_info(bucket, config) if info and isinstance(info, dict) and "Location" in info: region = info['Location'] config = get_config(region) set_site_config(dict(tencent_region=region)) client = CosS3Client(config) result = client.put_object( Bucket=bucket, Key=filepath, Body=stream, EnableMD5=False ) ETag = result['ETag'].replace('"', '') if ETag: res.update( code=0, etag=ETag, src=slash_join(dn, filepath), basedir=tencent_basedir, ) else: res.update(msg="The upload_path type error") return res
def upimg_save(**kwargs): res = dict(code=1) try: filename = kwargs["filename"] stream = kwargs["stream"] upload_path = kwargs.get("upload_path") or "" if not filename or not stream: return ValueError except (KeyError, ValueError): res.update(msg="Parameter error") else: dn = g.cfg.aliyun_dn bucket = g.cfg.aliyun_bucket ak = g.cfg.aliyun_ak sk = g.cfg.aliyun_sk aliyun_basedir = g.cfg.aliyun_basedir or '' if not dn or not bucket or not ak or not sk: res.update(msg="The aliyun parameter error") return res if isinstance(upload_path, string_types): if upload_path.startswith("/"): upload_path = upload_path.lstrip('/') if aliyun_basedir.startswith("/"): aliyun_basedir = aliyun_basedir.lstrip('/') filepath = join(aliyun_basedir, upload_path, filename) #: 使用阿里云云OSS官方SDK上传 auth = get_auth() endpoint = g.cfg.aliyun_endpoint if not endpoint: info = get_bucket_info(bucket, auth) if info and isinstance(info, dict) and "endpoint" in info: endpoint = info['endpoint'] set_site_config(dict(aliyun_endpoint=endpoint)) obj = Bucket(auth, endpoint, bucket) result = obj.put_object(filepath, stream) if result.status == 200: res.update( code=0, etag=result.etag, src=slash_join(dn, filepath), basedir=aliyun_basedir, ) else: res.update(msg="The upload_path type error") return res
def upimg_save(**kwargs): res = dict(code=1) try: filename = kwargs["filename"] stream = kwargs["stream"] upload_path = kwargs.get("upload_path") or "" if not filename or not stream: return ValueError except (KeyError, ValueError): res.update(msg="Parameter error") else: try: from qiniu import Auth, put_data except ImportError: res.update(msg="Please install qiniu module") return res dn = g.cfg.qiniu_dn bucket = g.cfg.qiniu_bucket ak = g.cfg.qiniu_ak sk = g.cfg.qiniu_sk qiniu_basedir = g.cfg.qiniu_basedir or '' if not dn or not bucket or not ak or not sk: res.update(msg="The qiniu parameter error") return res if isinstance(upload_path, string_types): if upload_path.startswith("/"): upload_path = upload_path.lstrip('/') if qiniu_basedir.startswith("/"): qiniu_basedir = qiniu_basedir.lstrip('/') saveto = join(qiniu_basedir, upload_path) filepath = join(saveto, filename) #: 使用七牛云SDK上传 qn = Auth(ak, sk) token = qn.upload_token(bucket, filepath, 60) ret, info = put_data(token, filepath, stream) if info.ok(): res.update(ret) res.update( code=0, src=slash_join(dn, filepath), basedir=qiniu_basedir, ) else: res.update(msg="The upload_path type error") return res
def upimg_save(**kwargs): res = dict(code=1) try: filename = kwargs["filename"] stream = kwargs["stream"] upload_path = kwargs.get("upload_path") or "" if not filename or not stream: raise ValueError except (KeyError, ValueError): res.update(msg="Parameter error") else: try: from upyun import UpYun, ED_AUTO except ImportError: res.update(msg="Please install upyun module") return res dn = g.cfg.upyun_dn bucket = g.cfg.upyun_bucket user = g.cfg.upyun_username passwd = g.cfg.upyun_password upyun_basedir = g.cfg.upyun_basedir or "/" if not dn or not bucket or not user or not passwd: res.update(msg="The upyun parameter error") return res if isinstance(upload_path, string_types): if upload_path.startswith("/"): upload_path = upload_path.lstrip("/") if not upyun_basedir.startswith("/"): upyun_basedir = "/%s" % upyun_basedir saveto = join(upyun_basedir, upload_path) filepath = join(saveto, filename) up = UpYun(bucket, user, passwd, timeout=30, endpoint=ED_AUTO) res.update(up.put(filepath, stream)) res.update( code=0, src=slash_join(dn, filepath), basedir=upyun_basedir, ) else: res.update(msg="The upload_path type error") return res
def upimg_save(**kwargs): res = dict(code=1) try: filename = kwargs["filename"] stream = kwargs["stream"] upload_path = kwargs.get("upload_path") or "" if not filename or not stream: return ValueError except (KeyError, ValueError): res.update(msg="Parameter error") else: token = g.cfg.gitee_token repo = g.cfg.gitee_repo branch = g.cfg.gitee_branch dn = g.cfg.gitee_dn gitee_basedir = g.cfg.gitee_basedir or '/' if not token or not repo or "/" not in repo: res.update(msg="The gitee parameter error") return res if isinstance(upload_path, string_types): if upload_path.startswith("/"): upload_path = upload_path.lstrip('/') if gitee_basedir.startswith("/"): gitee_basedir = gitee_basedir.lstrip('/') saveto = join(gitee_basedir, upload_path) filepath = join(saveto, filename) #: 通过API上传图片 data = dict( message="Create %s by picbed" % filepath, content=b64encode(stream).decode("utf-8"), access_token=token, ) if branch: data["branch"] = branch headers = { "User-Agent": "picbed-up2gitee/%s" % __version__, } try: r = try_request( "https://gitee.com/api/v5/repos/%s/contents/%s" % ( repo, filepath ), data=data, headers=headers, timeout=30, method="post" ) except requests.exceptions.RequestException as e: res.update(msg=e) else: result = r.json() if r.status_code == 201: content = result["content"] src = content["download_url"] if dn: src = slash_join(dn, filepath) res.update( code=0, src=src, basedir=gitee_basedir, branch=branch, size=content["size"], content_sha=content["sha"], download_url=content["download_url"], repo=repo, ) else: res.update( code=r.status_code, msg=result.get("message", "").replace( '"', '\'' ).replace('\n\n', ' ').replace('\n', '').replace( '\\', '' ), ) else: res.update(msg="The upload_path type error") return res
def upimg_save(**kwargs): res = dict(code=1) try: filename = kwargs["filename"] stream = kwargs["stream"] upload_path = kwargs.get("upload_path") or "" if not filename or not stream: raise ValueError except (KeyError, ValueError): res.update(msg="Parameter error") else: token = g.cfg.github_token repo = g.cfg.github_repo branch = g.cfg.github_branch dn = g.cfg.github_dn github_basedir = g.cfg.github_basedir or "/" if not token or not repo or "/" not in repo: res.update(msg="The github parameter error") return res if isinstance(upload_path, string_types): if upload_path.startswith("/"): upload_path = upload_path.lstrip("/") if github_basedir.startswith("/"): github_basedir = github_basedir.lstrip("/") saveto = join(github_basedir, upload_path) filepath = join(saveto, filename) #: 通过API上传图片 data = dict( message="Create %s by sapic" % filepath, content=b64encode(stream).decode("utf-8"), ) if branch: data["branch"] = branch headers = { "User-Agent": "sapic-up2github/%s" % __version__, "Authorization": "token %s" % token, } try: r = try_proxy_request( "https://api.github.com/repos/%s/contents/%s" % (repo, filepath), data=json.dumps(data), headers=headers, timeout=30, method="put", ) except requests.exceptions.RequestException as e: res.update(msg=e) else: result = r.json() if r.status_code == 201: content = result["content"] src = content["download_url"] if dn: src = slash_join(dn, filepath) elif is_true(g.cfg.github_jsdelivr): src = slash_join("https://cdn.jsdelivr.net/gh/", repo, filepath) res.update( code=0, src=src, basedir=github_basedir, branch=branch, size=content["size"], content_sha=content["sha"], download_url=content["download_url"], repo=repo, ) else: res.update( code=r.status_code, msg=result.get("message", "") .replace('"', "'") .replace("\n\n", " ") .replace("\n", "") .replace("\\", ""), ) else: res.update(msg="The upload_path type error") return res