最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

amazon web services - Django default_storage can`t find an existing file - Stack Overflow

programmeradmin0浏览0评论

I'm setting up work with my django app, but I ran into a problem when checking for any file in S3 storage.

I can't figure out why I can't use the exists() method in my code. I searched for an error for a long time, but it turned out that the exists() method always returns False to me.

Here is an example:

>>> from django.core.files.storage import default_storage
>>> print(default_storage.listdir(""))

(['media', 'preview'], ['address_preview_1.png','address_preview_35.jpg'])
>>> 
>>> print(default_storage.listdir("media"))
([], ['address_preview_35.jpg'])
>>> print(default_storage.exists('address_preview_35.jpg'))
False
>>> print(default_storage.exists('/media/address_preview_35.jpg'))
False
>>> print(default_storage.exists('media/address_preview_35.jpg'))
False
>>> print(default_storage.location)
media

We see that the file "address_preview_35.jpg " there is both in the root of the repository and in the "media" folder.

All arguments in settings.py are configured as described in the documentation. The image files are definitely on the server. We can open it. We can get the image from the full link. We can upload new files to the server and we can delete old ones. We can do everything EXCEPT check whether there is a file on the server or not. What am I doing wrong!?

I tried accessing the server directly and via s3cmd. I tried accessing the repository in the module via

from storages.backends.s3boto3 import S3Boto3Storage

s3_storage = S3Boto3Storage()
print(s3_storage.exists("media/address_preview_35.jpg"))

the result is the same - I see the file in the list, but when checking exists(), I get False.

发布评论

评论列表(0)

  1. 暂无评论