【问题标题】:How to use django-photologue with Amazon S3? Solving NotImplementedError如何在 Amazon S3 中使用 django-photologue?解决 NotImplementedError
【发布时间】:2013-04-13 12:35:39
【问题描述】:

我在使用带有 S3 的 Heroku 上的 Photologue 应用程序作为媒体和静态文件 Django 1.5 的存储时遇到问题。

问题是每当我尝试添加例如我得到的 django admin 中的照片尺寸:NotImplementedError

Exception Value:    
This backend doesn't support absolute paths.

尝试使用 manage.py plinit 配置 photologue 也是如此。

问题似乎是 photologue 尝试在几个地方使用os.path 方法,例如(回溯):

/app/.heroku/python/lib/python2.7/site-packages/photologue/models.py in _get_SIZE_filename
    return smart_str(os.path.join(self.cache_path(), 

有没有办法将 django-photologue 与远程存储一起使用,尤其是 Amazon S3?

【问题讨论】:

    标签: django amazon-s3 django-storage photologue


    【解决方案1】:

    django-photologue 的 fork 与 s3 完美配合。还有其他一些improvements 你可能也喜欢。

    感谢此分叉的作者 Marcos Daniel Petry。使我免于许多问题。

    【讨论】:

    • running pip freeze > requirements.txt 给了我一个关于 Heroku 无法安装的 photologue 的 petry fork 的参考。如果您遇到此问题,请将 pip 安装参考 (django-photologue==2.8dev0) 替换为:git+git://github.com/petry/django-photologue.git
    【解决方案2】:

    冲突发生在 s3boto 存储类中,路径方法未实现。根据 Django 文档,对于非本地存储,您不应实现此方法。作为建议解决此问题的唯一方法是继续在 django-photologue 代码中实现此方法并修改 storages.backends.s3boto 并添加路径方法。

    def url(self, name):
        ...
    
    def path(self, name):
        return None
    

    https://bitbucket.org/david/django-storages/src/tip/storages/backends/s3boto.py

    【讨论】:

    • @donkeyboy72 根据我的阅读,您的媒体文件必须在 Amazon S3 等其他服务器中处理。减轻您网站的负担。但就我而言,我从不使用它,也许在未来
    • 对。感谢@catherine 的回答,这与我在互联网上找到的非常相似。恐怕我不能用它做很多事情:) 我不太确定我应该如何“在 django-photologue 中实现这个方法”。我对 Django 很陌生。
    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    相关资源
    最近更新 更多