2013-04-13 38 views
4

我在使用S3上的Photkuue應用程序時遇到了問題,它使用S3作爲媒體和靜態文件Django 1.5的存儲。如何在Amazon S3上使用django-photologue?解決NotImplementedError

問題是,每當我嘗試添加例如在Django管理照片尺寸,我得到: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與遠程存儲,亞馬遜S3特別?

回答

0

衝突發生在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

+0

@ donkeyboy72根據我的閱讀,您的媒體文件必須在其他服務器(如Amazon S3)中處理。減輕你網站的負擔。但在我的情況下,我從來沒有使用這個,也許在未來 – catherine

+0

沒錯。感謝@catherine的回答,這與我在interwebs中發現的非常相似。恐怕我不能用它做很多事情:)雖然我不確定我應該如何「在django-photologue中實現這個方法」。我對Django很陌生。 –

2

這Django的photologue的fork可與S3完美。還有一些其他improvements你也可能喜歡。

感謝Marcos Daniel Petry,這個叉的作者。從很多問題拯救了我。

+0

運行'pip freeze> requirements.txt'給了我一個Heroku無法安裝的photologue的petry fork的參考。如果你有這個問題,用下面的代碼替換那個pip安裝參考文件('django-photologue == 2.8dev0'):'git + git:// github.com/petry/django-photologue.git' – ecoe