issue: Support for OpenStack Cloud S3 #5119

Closed
opened 2025-11-11 16:12:43 -06:00 by GiteaMirror · 0 comments
Owner

Originally created by @Sabian-A on GitHub (May 9, 2025).

Check Existing Issues

  • I have searched the existing issues and discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Git Clone

Open WebUI Version

0.6.7

Ollama Version (if applicable)

No response

Operating System

Kubernetes

Browser (if applicable)

No response

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have listed steps to reproduce the bug in detail.

Expected Behavior

When attempting to upload a file with storage set to s3, the application should upload

Actual Behavior

When attempting to upload a file using OpenStack's S3-compatible object storage, the application crashes with the following error:

RuntimeError: Error uploading file to S3: An error occurred (NotImplemented) when calling the PutObjectTagging operation: The requested resource is not implemented
This issue seems to stem from the use of the PutObjectTagging API, which is not implemented in some S3-compatible backends like OpenStack Swift.

Suggested Fix:
To ensure compatibility with OpenStack-based S3 providers, consider making tagging optional or providing a fallback when PutObjectTagging is not supported.

Environment:

Backend: OpenStack Swift with S3 API enabled

Error Location: open_webui/storage/provider.py, line 157

Operation: File upload

Please add support or a workaround for this scenario to enable broader cloud compatibility.

Steps to Reproduce

use kubernetes helm chart to deploy the application with persistence provider set to s3 and on s3 compatable openstack-cloud s3

Logs & Screenshots

Traceback (most recent call last):

File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap
self._bootstrap_inner()
│ └ <function Thread._bootstrap_inner at 0x7fd0aeb28860>
└ <WorkerThread(AnyIO worker thread, started 140532524246720)>
File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
self.run()
│ └ <function WorkerThread.run at 0x7fd04754a0c0>
└ <WorkerThread(AnyIO worker thread, started 140532524246720)>
File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run
result = context.run(func, *args)
│ │ │ └ ()
│ │ └ functools.partial(<function upload_file at 0x7fd080f09300>, user=UserModel(id='7736ee2b-af30-4def-967a-44746b4a1a5b', name='A...
│ └ <method 'run' of '_contextvars.Context' objects>
└ <_contextvars.Context object at 0x7fd0475db240>

File "/app/backend/open_webui/routers/files.py", line 108, in upload_file
contents, file_path = Storage.upload_file(file.file, filename, tags)
│ │ │ │ │ └ {'OpenWebUI-User-Email': 'abel@exponent.team', 'OpenWebUI-User-Id': '7736ee2b-af30-4def-967a-44746b4a1a5b', 'OpenWebUI-User-N...
│ │ │ │ └ '061aa11d-0985-4459-a0aa-68341e74c95e_package-lock.json'
│ │ │ └ <tempfile.SpooledTemporaryFile object at 0x7fd045ed17b0>
│ │ └ UploadFile(filename='package-lock.json', size=418, headers=Headers({'content-disposition': 'form-data; name="file"; filename=...
│ └ <function S3StorageProvider.upload_file at 0x7fd07f0ba3e0>
└ <open_webui.storage.provider.S3StorageProvider object at 0x7fd07f10c390>

File "/app/backend/open_webui/storage/provider.py", line 157, in upload_file
raise RuntimeError(f"Error uploading file to S3: {e}")

RuntimeError: Error uploading file to S3: An error occurred (NotImplemented) when calling the PutObjectTagging operation: The requested resource is not implemented

Additional Information

No response

Originally created by @Sabian-A on GitHub (May 9, 2025). ### Check Existing Issues - [x] I have searched the existing issues and discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Git Clone ### Open WebUI Version 0.6.7 ### Ollama Version (if applicable) _No response_ ### Operating System Kubernetes ### Browser (if applicable) _No response_ ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have listed steps to reproduce the bug in detail. ### Expected Behavior When attempting to upload a file with storage set to s3, the application should upload ### Actual Behavior When attempting to upload a file using OpenStack's S3-compatible object storage, the application crashes with the following error: RuntimeError: Error uploading file to S3: An error occurred (NotImplemented) when calling the PutObjectTagging operation: The requested resource is not implemented This issue seems to stem from the use of the PutObjectTagging API, which is not implemented in some S3-compatible backends like OpenStack Swift. Suggested Fix: To ensure compatibility with OpenStack-based S3 providers, consider making tagging optional or providing a fallback when PutObjectTagging is not supported. Environment: Backend: OpenStack Swift with S3 API enabled Error Location: open_webui/storage/provider.py, line 157 Operation: File upload Please add support or a workaround for this scenario to enable broader cloud compatibility. ### Steps to Reproduce use kubernetes helm chart to deploy the application with persistence provider set to s3 and on s3 compatable openstack-cloud s3 ### Logs & Screenshots Traceback (most recent call last): File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap self._bootstrap_inner() │ └ <function Thread._bootstrap_inner at 0x7fd0aeb28860> └ <WorkerThread(AnyIO worker thread, started 140532524246720)> File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner self.run() │ └ <function WorkerThread.run at 0x7fd04754a0c0> └ <WorkerThread(AnyIO worker thread, started 140532524246720)> File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run result = context.run(func, *args) │ │ │ └ () │ │ └ functools.partial(<function upload_file at 0x7fd080f09300>, user=UserModel(id='7736ee2b-af30-4def-967a-44746b4a1a5b', name='A... │ └ <method 'run' of '_contextvars.Context' objects> └ <_contextvars.Context object at 0x7fd0475db240> > File "/app/backend/open_webui/routers/files.py", line 108, in upload_file contents, file_path = Storage.upload_file(file.file, filename, tags) │ │ │ │ │ └ {'OpenWebUI-User-Email': 'abel@exponent.team', 'OpenWebUI-User-Id': '7736ee2b-af30-4def-967a-44746b4a1a5b', 'OpenWebUI-User-N... │ │ │ │ └ '061aa11d-0985-4459-a0aa-68341e74c95e_package-lock.json' │ │ │ └ <tempfile.SpooledTemporaryFile object at 0x7fd045ed17b0> │ │ └ UploadFile(filename='package-lock.json', size=418, headers=Headers({'content-disposition': 'form-data; name="file"; filename=... │ └ <function S3StorageProvider.upload_file at 0x7fd07f0ba3e0> └ <open_webui.storage.provider.S3StorageProvider object at 0x7fd07f10c390> File "/app/backend/open_webui/storage/provider.py", line 157, in upload_file raise RuntimeError(f"Error uploading file to S3: {e}") RuntimeError: Error uploading file to S3: An error occurred (NotImplemented) when calling the PutObjectTagging operation: The requested resource is not implemented ### Additional Information _No response_
GiteaMirror added the bug label 2025-11-11 16:12:43 -06:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#5119