Я пытаюсь создать скрипт массовой загрузки изображений для imagekit.Документация отсутствует, и пример cURL на документах не работает:
https://docs.imagekit.io/?shell#server-side-image-upload
До сих пор моей ближайшей попыткой было разработать структуру вызова, аналогичную той, которая отображалась для перечисления изображенийи удаляя их (больше удаляя их, так как это также почтовый запрос).
import os
import hmac
import time
import base64
import requests
from hashlib import sha1
def create_signature(api_key, string):
string_to_sign = string.encode('utf-8')
hashed = hmac.new(api_key, string_to_sign, sha1)
return hashed.hexdigest()
def get_file(file_name):
open_file = open(file_name)
encoded = base64.b64encode(open_file.read())
encoded_file = open_file
#open_file.close()
return encoded_file
api_key = 'my_api_key='
imagekit_id = 'my_imagekit_id'
file_path = '1_test'
url = 'https://upload.imagekit.io/rest/api/image/v2/{0}'.format(imagekit_id)
files = os.listdir(file_path)
for file in files:
file_name = file_path + '/' + file
timestamp = int(time.time())
string = 'apiKey={0}&filename={1}×tamp={2}'.format(api_key, file_name, timestamp)
signed_key = create_signature(api_key, string)
encoded_file = get_file(file_name)
headers = {
'Content-Type': "Content - Type: multipart / form - data"
}
payload = {'apiKey': api_key, 'filename': file_name,
'timestamp': timestamp, 'signature': signed_key,
'file': encoded_file}
r = requests.post(url, data=payload, headers=headers)
encoded_file.close()
statuscode = 400, со следующей ошибкой:
>>> r._content
'{"exception":true,"statusNumber":1400,"statusCode":"BAD_REQUEST","message":"File not found for upload"}'