Browse Source

代码上传

master
kira 2 years ago
parent
commit
82c23fead5
3 changed files with 86 additions and 0 deletions
  1. +14
    -0
      Dockerfile
  2. +69
    -0
      main.py
  3. +3
    -0
      requirements.txt

+ 14
- 0
Dockerfile View File

@@ -0,0 +1,14 @@
FROM python:3.7

COPY ./requirements.txt /src/requirements.txt
RUN pip install -r /src/requirements.txt

COPY ./ /src/

WORKDIR /src

EXPOSE 5000

ENV FLASK_APP main.py

CMD ["python","-m","flask","run","--host=0.0.0.0"]

+ 69
- 0
main.py View File

@@ -0,0 +1,69 @@
#!/usr/bin/env python
# coding=utf-8
import json
import os
from flask import Flask
from flask import request
from flask import jsonify
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.client import AcsClient
from aliyunsdkcr.request.v20160607 import GetImageLayerRequest,GetRepoTagsRequest
# 示例执行异常时建议升级aliyun-python-sdk-core到最新版本
# 设置Client


AK = os.getenv("ak")
SK = os.getenv("secret")

class AliyunCr():
def __init__(self,endpoint="cn-shanghai"):

self.apiClient = AcsClient(AK, SK, endpoint)
def get_repo_tags(self,repo_namespace="ly_release",repo_name="",simple=False):

# 构造请求
request = GetRepoTagsRequest.GetRepoTagsRequest()
# 设置参数
request.set_RepoNamespace(repo_namespace)
request.set_RepoName(repo_name)
# request.set_Tag("tag")
# 根据文档获取资源所在区域对应的RegionId
# 请求地址格式为cr.{regionId}.aliyuncs.com
# request.set_endpoint("cr.cn-shanghai.aliyuncs.com")
# 发起请求
try:
response = self.apiClient.do_action_with_exception(request)
response = json.loads(response)

if not simple:
return response["data"]["tags"]
tags = ""
for i in response["data"]["tags"]:
tags += i["tag"]+"\n"
return tags
except ServerException as e:
print(e)
except ClientException as e:
print(e)



app = Flask(__name__)

@app.route('/image')
def hello_world():
print(request.args)
endpoint = request.args.get('endpoint', 'cn-shanghai')
repo_namespace = request.args.get('repo_namespace', 'ly_release')
repo_name = request.args.get('repo_name', '')
simple = request.args.get('simple', False) #精简显示
if simple:
simple = True
if not repo_name:
return '范例/inage?endpoint=cn-shanghai&repo_namespace=ops&repo_name=cmdb&simple=1'
ali = AliyunCr(endpoint)
data = ali.get_repo_tags(repo_namespace,repo_name,simple)
if not simple:
return jsonify(data)
return data

+ 3
- 0
requirements.txt View File

@@ -0,0 +1,3 @@
flask==2.3.2
aliyun-python-sdk-core
aliyun-python-sdk-cr

Loading…
Cancel
Save