Repository navigation
Create Image Upload is broken for Sync and Async #2569
Copy link
Copy link
Open
Description
Confirm this is a Python library issue and not an underlying Cloudflare API issue.
- This is an issue with the Python library
Describe the bug
The Cloudflare Image Create function is broken.
There is an example below, this has also been discussed on StackOverflow
I cant see any test coverage for this use case.
| v1 = client.images.v1.create( |
To Reproduce
This is a working example using Python Requests
import requests
with open(
"water bottle.webp", "rb"
) as f:
data = f.read()
# try requests
files = {
"file": (
"water bottle.webp",
data,
"image/webp",
)
}
response = requests.post(
url=f"https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/images/v1",
headers={
"Authorization": f"Bearer ..."
},
files=files,
)
print(response.status_code)
print(response.json())This is a broken example using the Cloudflare Sync function
with open(
"water bottle.webp", "rb"
) as f:
data = f.read()
from cloudflare import Cloudflare
client = Cloudflare(
api_token='...'
)
# Create a tuple: (filename, binary data, content type)
file_tuple = ("water bottle.webp", data, "image/webp",)
cloudflare_image = await client.images.v1.create(
account_id=CLOUDFLARE_ACCOUNT_ID,
file=file_tuple,
)
print(cloudflare_image)The output is
cloudflare.BadRequestError: Error code: 400 - {'result': None, 'success': False, 'errors': [{'code': 5400, 'message': 'Bad request: Error parsing form fields'}], 'messages': []}
This is a broken example using the Async Cloudflare function
from cloudflare import AsyncCloudflare
client = AsyncCloudflare(
api_token='...'
)
# Create a tuple: (filename, binary data, content type)
file_tuple = ("water bottle.webp", data, "image/webp",)
cloudflare_image = await client.images.v1.create(
account_id=CLOUDFLARE_ACCOUNT_ID,
file=file_tuple,
)
print(cloudflare_image)The output is
cloudflare.BadRequestError: Error code: 400 - {'result': None, 'success': False, 'errors': [{'code': 5400, 'message': 'Bad request: Error parsing form fields'}], 'messages': []}
Code snippets
OS
macOS
Python version
3.12.9
Library version
v4.1.0
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
laleye commentedon May 3, 2025
I got the same issue with the following code:
codewithdhruba01 commentedon May 8, 2025
Hi, I looked into the issue and it seems like the problem is due to the use of outdated imports from the
collectionsmodule. Starting from Python 3.10+, classes likeMapping,MutableMapping, etc., have been moved tocollections.abc, and in Python 3.12, the old import path has been fully removed.To fix the issue, we can update the imports in the codebase from:
to:
I’d be happy to help submit a PR for this if needed. Let me know!
jhutchings1 commentedon Jun 30, 2025
We've opened a thread internally to investigate.