homeassistant-addon-repository/minio-backup/run.py

42 lines
994 B
Python
Raw Normal View History

2023-10-24 16:44:52 +00:00
#!/usr/local/bin/python
2023-10-22 21:21:25 +00:00
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()