Невозможно загрузить контент в папку WordPress /wp-content/uploads/woocommerce_uploads/ ⇐ Python
-
Гость
Невозможно загрузить контент в папку WordPress /wp-content/uploads/woocommerce_uploads/
Я пытаюсь написать скрипт Python, который будет загружать изображения и PDF-файлы в WordPress. Я хочу, чтобы изображения загружались в папку «/wp-content/uploads/», а файлы PDF — в папку «/wp-content/uploads/woocommerce_uploads/».
запросы на импорт импортировать ОС класс UploadProductMedia: def __init__(self, media_endpoint, wordpress_username, wordpress_password): self.media_endpoint = media_endpoint self.wordpress_username = wordpress_username self.wordpress_password = wordpress_password проходить Защиту upload_media (я, путь к файлу): print(f"Загрузка мультимедиа {file_path}") с open(file_path, 'rb') как файлом: # Подготавливаем данные для отправки в запрос данные = { 'файл': (os.path.basename(путь_файла), файл), } # Определить каталог загрузки в зависимости от типа файла upload_directory = '/wp-content/uploads/' если file_path.lower().endswith(('.pdf')): upload_directory = '/wp-content/uploads/woocommerce_uploads/' print(f"Загрузка в каталог {upload_directory}") # Отправьте запрос POST на конечную точку мультимедиа с аутентификацией ответ = запросы.post(f"{self.media_endpoint}?upload_to={upload_directory}", auth=(self.wordpress_username, self.wordpress_password), files=data) если ответ.код_статуса == 201: ответ_данные = ответ.json() uploaded_media_uri = response_data.get('guid', {}).get('рендеринг', '') print(f'Успешно загружено: {file_path}') вернуть uploaded_media_uri еще: print(f'Не удалось загрузить: {file_path}') print(f'Response: {response.status_code} - {response.text}') возврат Нет если __name__ == "__main__": # Пример использования: print("=== Начало ===") для файла в ["TestData\pear1.png", "TestData\pear1.pdf"]: UploadProductMedia('https://mysite.co.uk/wp-json/wp/v2/media', 'myusername', 'mypassword').upload_media(файл) print("=== Завершено ===") Журналы консоли показывают, что программа работала должным образом.
=== Начало === Загрузка мультимедиа TestData\pear1.png Загрузка в каталог /wp-content/uploads/ Успешно загружено: TestData\pear1.png Загрузка мультимедиа TestData\pear1.pdf Загрузка в каталог /wp-content/uploads/woocommerce_uploads/ Успешно загружено: TestData\pear1.pdf === Закончено === Однако PDF-файл был загружен в неправильный каталог. PDF-файл был загружен на https://mysite.co.uk/wp-content/uploads ... /pear1.pdf
Пожалуйста, не могли бы вы объяснить, почему файлы PDF не загружаются в /wp-content/uploads/woocommerce_uploads/
Я пытаюсь написать скрипт Python, который будет загружать изображения и PDF-файлы в WordPress. Я хочу, чтобы изображения загружались в папку «/wp-content/uploads/», а файлы PDF — в папку «/wp-content/uploads/woocommerce_uploads/».
запросы на импорт импортировать ОС класс UploadProductMedia: def __init__(self, media_endpoint, wordpress_username, wordpress_password): self.media_endpoint = media_endpoint self.wordpress_username = wordpress_username self.wordpress_password = wordpress_password проходить Защиту upload_media (я, путь к файлу): print(f"Загрузка мультимедиа {file_path}") с open(file_path, 'rb') как файлом: # Подготавливаем данные для отправки в запрос данные = { 'файл': (os.path.basename(путь_файла), файл), } # Определить каталог загрузки в зависимости от типа файла upload_directory = '/wp-content/uploads/' если file_path.lower().endswith(('.pdf')): upload_directory = '/wp-content/uploads/woocommerce_uploads/' print(f"Загрузка в каталог {upload_directory}") # Отправьте запрос POST на конечную точку мультимедиа с аутентификацией ответ = запросы.post(f"{self.media_endpoint}?upload_to={upload_directory}", auth=(self.wordpress_username, self.wordpress_password), files=data) если ответ.код_статуса == 201: ответ_данные = ответ.json() uploaded_media_uri = response_data.get('guid', {}).get('рендеринг', '') print(f'Успешно загружено: {file_path}') вернуть uploaded_media_uri еще: print(f'Не удалось загрузить: {file_path}') print(f'Response: {response.status_code} - {response.text}') возврат Нет если __name__ == "__main__": # Пример использования: print("=== Начало ===") для файла в ["TestData\pear1.png", "TestData\pear1.pdf"]: UploadProductMedia('https://mysite.co.uk/wp-json/wp/v2/media', 'myusername', 'mypassword').upload_media(файл) print("=== Завершено ===") Журналы консоли показывают, что программа работала должным образом.
=== Начало === Загрузка мультимедиа TestData\pear1.png Загрузка в каталог /wp-content/uploads/ Успешно загружено: TestData\pear1.png Загрузка мультимедиа TestData\pear1.pdf Загрузка в каталог /wp-content/uploads/woocommerce_uploads/ Успешно загружено: TestData\pear1.pdf === Закончено === Однако PDF-файл был загружен в неправильный каталог. PDF-файл был загружен на https://mysite.co.uk/wp-content/uploads ... /pear1.pdf
Пожалуйста, не могли бы вы объяснить, почему файлы PDF не загружаются в /wp-content/uploads/woocommerce_uploads/