загрузить изображение в imagekit, используя python - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь создать скрипт массовой загрузки изображений для 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}&timestamp={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"}'
...