minio
This commit is contained in:
@@ -1,38 +1,47 @@
|
||||
import datetime
|
||||
import io
|
||||
from random import choice
|
||||
from time import sleep
|
||||
|
||||
from django.core.management import BaseCommand
|
||||
from requests import get, post
|
||||
from minio import Minio
|
||||
|
||||
from Sprint import settings
|
||||
from SprintLib.queue import send_to_queue
|
||||
from SprintLib.redis import lock
|
||||
|
||||
BUCKET_NAME = 'dev'
|
||||
|
||||
|
||||
client = Minio(
|
||||
settings.MINIO_HOST,
|
||||
access_key=settings.MINIO_ACCESS_KEY,
|
||||
secret_key=settings.MINIO_SECRET_KEY,
|
||||
secure=False
|
||||
)
|
||||
|
||||
|
||||
@lock('write_bytes')
|
||||
def write_bytes(data: bytes):
|
||||
url = settings.FS_HOST + ":" + str(settings.FS_PORT) + "/upload_file"
|
||||
print(url)
|
||||
try:
|
||||
return post(url, data=data).json()["id"]
|
||||
except Exception:
|
||||
return 0
|
||||
obj = client.get_object(BUCKET_NAME, 'meta.txt')
|
||||
num = int(obj.data.decode('utf-8')) + 1
|
||||
b_num = str(num).encode('utf-8')
|
||||
client.put_object(BUCKET_NAME, str(num), io.BytesIO(data), len(data))
|
||||
client.put_object(BUCKET_NAME, 'meta.txt', io.BytesIO(b_num), len(b_num))
|
||||
return num
|
||||
|
||||
|
||||
def get_bytes(num: int) -> bytes:
|
||||
url = settings.FS_HOST + ":" + str(settings.FS_PORT) + "/get_file?id=" + str(num)
|
||||
print(url)
|
||||
try:
|
||||
return get(url).content
|
||||
except Exception:
|
||||
return client.get_object(BUCKET_NAME, str(num)).data
|
||||
except:
|
||||
return b''
|
||||
|
||||
|
||||
def delete_file(num: int):
|
||||
url = settings.FS_HOST + ":" + str(settings.FS_PORT) + "/delete_file?id=" + str(num)
|
||||
print(url)
|
||||
try:
|
||||
post(url)
|
||||
except Exception:
|
||||
client.remove_object(BUCKET_NAME, str(num))
|
||||
except:
|
||||
...
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user