42 lines
989 B
Python
42 lines
989 B
Python
#!/usr/bin/python3
|
|
|
|
import json
|
|
import pathlib
|
|
|
|
import minio
|
|
|
|
|
|
def main():
|
|
# Load the user configuration.
|
|
with open("/data/options.json", "r") as f:
|
|
config = json.load(f)
|
|
|
|
client = minio.Minio(
|
|
config["minio_url"],
|
|
access_key=config["minio_access_key"],
|
|
secret_key=config["minio_secret_key"],
|
|
)
|
|
|
|
found = client.bucket_exists(config["minio_bucket"])
|
|
if not found:
|
|
client.make_bucket(config["minio_bucket"])
|
|
else:
|
|
print(f"Bucket {config['minio_bucket']} already exists")
|
|
|
|
backup_folder = pathlib.Path("/backup")
|
|
objects = [x.object_name for x in client.list_objects(config["minio_bucket"])]
|
|
|
|
to_upload = [x for x in backup_folder.iterdir() if x.name not in objects]
|
|
|
|
for file in to_upload:
|
|
client.fput_object(
|
|
config["minio_bucket"],
|
|
file.name,
|
|
str(file.resolve()),
|
|
)
|
|
print(f"Uploaded {file.name}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|