Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making media files accessible from host #58

Open
eduherminio opened this issue Aug 6, 2023 · 1 comment
Open

Making media files accessible from host #58

eduherminio opened this issue Aug 6, 2023 · 1 comment

Comments

@eduherminio
Copy link

eduherminio commented Aug 6, 2023

Thanks a lot for the detailed article @mjhea0.

I was able to follow it from start to end and the only part that didn't work for me was STATIC_ROOT = BASE_DIR / "staticfiles", where I'm getting TypeError: unsupported operand type(s) for /: 'str' and 'str', but replacing it with STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') made it work without major inconvenience.

Other than that, here's my main question: how can I make the media dir accessible from the host?

I tried in the same fashion as I was doing with my database (making sure the directory was created beforehand), but no luck.
Here's the relevant change: lynx-chess/OpenBench@cc99ad4

And here the sad result of the attempt.

image

Environment:

Request Method: POST
Request URL: http://localhost/

Django Version: 4.2.1
Python Version: 3.11.4
Installed Applications:
['OpenBench',
'OpenBench.templatetags',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'upload']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'htmlmin.middleware.HtmlMinifyMiddleware',
'htmlmin.middleware.MarkRequestMiddleware']

Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/app/web/upload/views.py", line 9, in image_upload
filename = fs.save(image_file.name, image_file)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/django/core/files/storage/base.py", line 38, in save
name = self._save(name, content)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/django/core/files/storage/filesystem.py", line 106, in _save
fd = os.open(full_path, self.OS_OPEN_FLAGS, 0o666)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Exception Type: PermissionError at /
Exception Value: [Errno 13] Permission denied: '/home/app/web/media/quota.PNG'

@alexdeathway
Copy link

You need to create a media dir in Dockerfile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants