Самое первое, фрагмент кода, который вы показываете в качестве ссылки, не для вашего случая использования, так как я написал этот фрагмент кода для пакетной загрузки из boto3, где вы должны указать пути к изображениям в вашем скрипте вместе с метаданными для изображенияТаким образом, имена в вашем фрагменте кода являются метаданными. Итак, насколько я понимаю из вашего вопроса, вы хотите, чтобы файлы в локальной папке были загружены, и хотите предоставить пользовательские имена перед загрузкой, поэтому вы так и сделаете.
import os
import boto3
s3 = boto3.resource('s3')
directory_in_str="E:\\streethack\\hold"
directory = os.fsencode(directory_in_str)
for file in os.listdir(directory):
filename = os.fsdecode(file)
if filename.endswith(".jpeg") or filename.endswith(".jpg") or filename.endswith(".png"):
strg=directory_in_str+'\\'+filename
print(strg)
print("Enter name for your image : ")
inp_val = input()
strg2=inp_val+'.jpeg'
file = open(strg,'rb')
object = s3.Object('mausamrest','test/'+ strg2) #mausamrest is bucket
object.put(Body=file,ContentType='image/jpeg',ACL='public-read')
else:
continue
программно необходимо указать путь к папке, жестко закодированный в этом примере, в переменной directory_in_str .затем этот код будет перебирать каждый файл в поисках изображения, затем запрашивать ввод для произвольного имени и затем загружать ваш файл.
Кроме того, вы хотите показывать эти изображения на своем веб-сайте, поэтому public_read для изображений был включен с помощью ACL, поэтому вы можете напрямую использовать ссылки s3 для встраивания изображений в ваши веб-страницы, подобные этой.
https://s3.amazonaws.com/mausamrest/test/jkl.jpeg
Этот файл - тот, который я использовал для проверки этого фрагмента кода.ваши изображения будут доступны, как это.Убедитесь, что вы изменили название ковша.:)