Replies: 2 comments 1 reply
-
|
This When you connect to an S3 endpoint using an IP address (like your Tailscale IP This fails instantly because We need to force Path Style Addressing (e.g., Here is the fix. You need to update The Fix:
|
Beta Was this translation helpful? Give feedback.
-
|
These tests are excellent. They cover the exact edge cases we need (suffixes, non-existent files, factory defaults). To ensure your Tests Pass (specifically handling the empty Here is the Final, Test-Compliant Code for v0.11.0. 1.
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
How can I tell if the server has started OK after I update the server/.env file there is no log entries to confirm the connection to S3 is actually working or falling back to local storage
THis is the server log....
Correct login nd incorrect login both fil
Traceback (most recent call last):
File "/teamspace/studios/this_studio/forgesyte/server/.venv/bin/uvicorn", line 10, in
sys.exit(main())
~~~~^^
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/click/core.py", line 1485, in call
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/click/core.py", line 1406, in main
rv = self.invoke(ctx)
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/click/core.py", line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/click/core.py", line 824, in invoke
return callback(*args, **kwargs)
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/uvicorn/main.py", line 424, in main
run(
~~~^
app,
^^^^
...<46 lines>...
h11_max_incomplete_event_size=h11_max_incomplete_event_size,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/uvicorn/main.py", line 594, in run
server.run()
~~~~~~~~~~^^
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/uvicorn/server.py", line 67, in run
return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
File "/system/conda/miniconda3/uv/python/cpython-3.13.7-linux-x86_64-gnu/lib/python3.13/asyncio/runners.py", line 195, in run
return runner.run(main)
~~~~~~~~~~^^^^^^
File "/system/conda/miniconda3/uv/python/cpython-3.13.7-linux-x86_64-gnu/lib/python3.13/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "uvloop/loop.pyx", line 1518, in uvloop.loop.Loop.run_until_complete
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/uvicorn/server.py", line 71, in serve
await self._serve(sockets)
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/uvicorn/server.py", line 78, in _serve
config.load()
~~~~~~~~~~~^^
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/uvicorn/config.py", line 439, in load
self.loaded_app = import_from_string(self.app)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/uvicorn/importer.py", line 19, in import_from_string
module = importlib.import_module(module_str)
File "/system/conda/miniconda3/uv/python/cpython-3.13.7-linux-x86_64-gnu/lib/python3.13/importlib/init.py", line 88, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 1387, in _gcd_import
File "", line 1360, in _find_and_load
File "", line 1331, in _find_and_load_unlocked
File "", line 935, in _load_unlocked
File "", line 1026, in exec_module
File "", line 488, in _call_with_frames_removed
File "/teamspace/studios/this_studio/forgesyte/server/app/main.py", line 41, in
from .api_routes.routes.image_submit import router as image_submit_router
File "/teamspace/studios/this_studio/forgesyte/server/app/api_routes/routes/image_submit.py", line 28, in
storage = get_storage_service()
File "/teamspace/studios/this_studio/forgesyte/server/app/services/storage/factory.py", line 18, in get_storage_service
return S3StorageService(
bucket_name=os.getenv("S3_BUCKET_NAME", "forgesyte-jobs"),
...<2 lines>...
secret_key=os.getenv("S3_SECRET_KEY", "")
)
File "/teamspace/studios/this_studio/forgesyte/server/app/services/storage/s3_storage.py", line 41, in init
self.client.head_bucket(Bucket=self.bucket)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/botocore/client.py", line 602, in _api_call
return self._make_api_call(operation_name, kwargs)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/botocore/context.py", line 123, in wrapper
return func(*args, **kwargs)
File "/teamspace/studios/this_studio/forgesyte/server/.venv/lib/python3.13/site-packages/botocore/client.py", line 1078, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (400) when calling the HeadBucket operation: Bad Request
(server) ⚡ v0.11.0 ~/forgesyte/server
FORGESYTE_STORAGE_BACKEND=s3
Beta Was this translation helpful? Give feedback.
All reactions