Как загрузить изображения в корзину S3, если она еще не существует - PullRequest
0 голосов
/ 06 августа 2020

У меня запущен сценарий python для загрузки изображений в корзину s3 каждый час. Входящие изображения бывают трех типов, и сценарий создает специальную папку c на основе имени изображения, а затем загружает изображения в эту папку в S3 на основе имени изображения.

Что происходит сейчас, так это то, что каждый час одни и те же изображения перезаписываются в корзине, мне нужно загружать изображения, только если они еще не существуют. Как я могу этого добиться. Прошу помощи через

import os.path, shutil
import os, time
import socket
import boto3
from botocore.exceptions import NoCredentialsError
import glob
import json
from apscheduler.schedulers.blocking import BlockingScheduler


id = id_of_file
def my_schedule():
    s3 = boto3.client('s3', aws_access_key_id="Access_key",
                aws_secret_access_key="Secret_key")

    folder_path = "path"
    images = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
    for image in images:
        print(image)
        folder_name = image.split('-')[0]
        print(folder_name)
        print("folder created**********************************")
        key = "%s/%s" % (id+ '/' + folder_name, os.path.basename(image))
        objs = list(bucket.objects.filter(Prefix=key))
        print("Putting %s as %s" % (image, key))
        final_file = folder_path + image
        s3.upload_file(final_file, Bucket, key)

    print("ALL Images uploaded successfully to s3 bucket")
    time.sleep(5)

scheduler = BlockingScheduler()
scheduler.add_job(my_schedule, 'interval', hours=1)
scheduler.start()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...