lesscode-flask 0.1.8__tar.gz → 0.1.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/PKG-INFO +1 -1
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/__init__.py +1 -1
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/oss/__init__.py +63 -42
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask.egg-info/PKG-INFO +1 -1
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/README.md +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/app.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/db/__init__.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/db/datasource.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/db/executor.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/export_data/__init__.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/export_data/data_download_handler.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/log/access_log_handler.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/access_log.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/base_model.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/parameterized_query.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/resource_param_template.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/response_result.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/user.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/service/access_log_service.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/service/base_service.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/service/resource_param_template_service.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/setting/__init__.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/setup/__init__.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/static/swagger.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/__init__.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/decorator/__init__.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/decorator/cache.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/decorator/swagger.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/file/file_exporter.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/helpers.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/json/NotSortJSONProvider.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/oss/ks3_oss.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/redis/redis_helper.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/request/request.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/swagger/swagger_template.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/swagger/swagger_util.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/thread/thread_utils.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/wsgi.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask.egg-info/SOURCES.txt +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask.egg-info/dependency_links.txt +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask.egg-info/requires.txt +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask.egg-info/top_level.txt +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/__init__.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/clickhouse.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/elasticsearch.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/kingbase.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/mysql.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/query_runner/pg.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/settings/__init__.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/settings/helpers.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/utils/__init__.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/redash/utils/requests_session.py +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/setup.cfg +0 -0
- {lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/setup.py +0 -0
|
@@ -6,17 +6,62 @@ from lesscode_flask.utils.oss.ks3_oss import Ks3Oss
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class CommonOss:
|
|
9
|
-
def __init__(self, storage_type, **kwargs):
|
|
9
|
+
def __init__(self, storage_type, data_type="stream", **kwargs):
|
|
10
10
|
"""
|
|
11
11
|
初始化OSS
|
|
12
12
|
Args:
|
|
13
13
|
storage_type (str): 存储类型,目前支持ks3和file
|
|
14
|
-
|
|
14
|
+
data_type (str): 数据类型,目前支持stream和file_path
|
|
15
|
+
storage_config (dict): 存储配置,目前支持ks3和file,file_name
|
|
15
16
|
"""
|
|
16
17
|
self.storage_type = storage_type
|
|
18
|
+
self.data_type = data_type
|
|
17
19
|
self.storage_config = kwargs.get("storage_config", {}) if kwargs.get("storage_config", {}) else app_config.get(
|
|
18
20
|
"STORAGE_CONFIG", {})
|
|
19
21
|
|
|
22
|
+
def _save(self, key, io_stream: BytesIO = None, file_path: str = None):
|
|
23
|
+
file_url_obj = dict()
|
|
24
|
+
if self.storage_type == "ks3":
|
|
25
|
+
if self.data_type == "stream":
|
|
26
|
+
storage_config = self.storage_config or dict()
|
|
27
|
+
ks3 = Ks3Oss(**storage_config)
|
|
28
|
+
url = ks3.save(key=key, string_data=io_stream.getvalue(), content_type="string", policy="public-read")
|
|
29
|
+
file_url_obj = {"key": key, "url": url}
|
|
30
|
+
elif self.data_type == "file_path":
|
|
31
|
+
storage_config = self.storage_config or dict()
|
|
32
|
+
ks3 = Ks3Oss(**storage_config)
|
|
33
|
+
url = ks3.save(key=key, filename=file_path, content_type="filename", policy="public-read")
|
|
34
|
+
file_url_obj = {"key": key, "url": url}
|
|
35
|
+
elif self.storage_type == "file":
|
|
36
|
+
storage_path = ""
|
|
37
|
+
storage_dir = self.storage_config.get("storage_dir", "")
|
|
38
|
+
if not storage_dir:
|
|
39
|
+
storage_dir = app_config.get("STORAGE_DIR")
|
|
40
|
+
if not storage_dir:
|
|
41
|
+
raise Exception("storage_dir is empty")
|
|
42
|
+
if self.data_type == "stream":
|
|
43
|
+
if "\\" in key:
|
|
44
|
+
key_list = key.split("\\")
|
|
45
|
+
elif "/" in key:
|
|
46
|
+
key_list = key.split("/")
|
|
47
|
+
else:
|
|
48
|
+
key_list = [key]
|
|
49
|
+
storage_path = storage_dir
|
|
50
|
+
if key_list:
|
|
51
|
+
for k in key_list:
|
|
52
|
+
storage_path = os.path.join(storage_path, k)
|
|
53
|
+
dir_path = os.path.dirname(storage_path)
|
|
54
|
+
if not os.path.exists(dir_path):
|
|
55
|
+
os.makedirs(dir_path)
|
|
56
|
+
elif self.data_type == "file_path":
|
|
57
|
+
with open(file_path, 'rb') as infile:
|
|
58
|
+
io_stram = BytesIO(infile.read())
|
|
59
|
+
if storage_path:
|
|
60
|
+
with open(storage_path, 'wb') as outfile:
|
|
61
|
+
outfile.write(io_stram.getvalue())
|
|
62
|
+
file_url_obj = {"key": key, "url": storage_path}
|
|
63
|
+
return file_url_obj
|
|
64
|
+
|
|
20
65
|
def upload(self, **kwargs):
|
|
21
66
|
"""上传文件
|
|
22
67
|
Args:
|
|
@@ -28,60 +73,36 @@ class CommonOss:
|
|
|
28
73
|
files = kwargs.get("files", [])
|
|
29
74
|
if not files:
|
|
30
75
|
raise Exception("files is empty")
|
|
31
|
-
if self.
|
|
32
|
-
storage_config = self.storage_config or dict()
|
|
33
|
-
ks3 = Ks3Oss(**storage_config)
|
|
76
|
+
if self.data_type == "stream":
|
|
34
77
|
for f in files:
|
|
35
78
|
if not isinstance(f, dict):
|
|
36
|
-
|
|
79
|
+
key = f.filename
|
|
37
80
|
stream = f.stream.read()
|
|
38
81
|
file_stream = BytesIO(stream)
|
|
39
|
-
content = file_stream.getvalue().decode('utf-8')
|
|
40
|
-
url = ks3.save(key=file_name, content=content, content_type="string", policy="public-read")
|
|
41
|
-
file_url_list.append({"key": file_name, "url": url})
|
|
42
82
|
else:
|
|
43
83
|
key = f.get("key", "")
|
|
44
84
|
_steam = f.get("stream")
|
|
45
85
|
stream = _steam.stream.read()
|
|
46
86
|
file_stream = BytesIO(stream)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
file_url_list.append({"key": key, "url": url})
|
|
50
|
-
elif self.storage_type == "file":
|
|
51
|
-
storage_dir = self.storage_config.get("storage_dir", "")
|
|
52
|
-
if not storage_dir:
|
|
53
|
-
storage_dir = app_config.get("STORAGE_DIR")
|
|
54
|
-
if not storage_dir:
|
|
55
|
-
raise Exception("storage_dir is empty")
|
|
87
|
+
file_url_obj = self._save(key=key, io_stream=file_stream)
|
|
88
|
+
file_url_list.append(file_url_obj)
|
|
56
89
|
|
|
90
|
+
elif self.data_type == "file_path":
|
|
57
91
|
for f in files:
|
|
58
92
|
if not isinstance(f, dict):
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
93
|
+
if "\\" in f:
|
|
94
|
+
file_name = f.split("\\")[-1]
|
|
95
|
+
elif "/" in f:
|
|
96
|
+
file_name = f.split("/")[-1]
|
|
97
|
+
else:
|
|
98
|
+
file_name = f
|
|
99
|
+
key = file_name
|
|
100
|
+
_file_path = f
|
|
66
101
|
else:
|
|
67
102
|
key = f.get("key", "")
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if "\\" in key:
|
|
72
|
-
key_list = key.split("\\")
|
|
73
|
-
elif "/" in key:
|
|
74
|
-
key_list = key.split("/")
|
|
75
|
-
else:
|
|
76
|
-
key_list = [key]
|
|
77
|
-
file_path = storage_dir
|
|
78
|
-
if key_list:
|
|
79
|
-
for k in key_list:
|
|
80
|
-
file_path = os.path.join(file_path, k)
|
|
81
|
-
with open(file_path, 'wb') as outfile:
|
|
82
|
-
outfile.write(file_stream.getvalue())
|
|
83
|
-
file_url_list.append({"key": key, "url": file_path})
|
|
84
|
-
return file_url_list
|
|
103
|
+
_file_path = f.get("file_path")
|
|
104
|
+
file_url_obj = self._save(key=key, file_path=_file_path)
|
|
105
|
+
file_url_list.append(file_url_obj)
|
|
85
106
|
|
|
86
107
|
def download(self, key):
|
|
87
108
|
"""下载文件,返回文件流
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/export_data/data_download_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/model/resource_param_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/json/NotSortJSONProvider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode-flask-0.1.8 → lesscode-flask-0.1.10}/lesscode_flask/utils/swagger/swagger_template.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|