File storage S3 a soubor přístupný lokálně

16 views
Skip to first unread message

Jan Munclinger

unread,
Sep 13, 2016, 9:05:27 AM9/13/16
to djan...@googlegroups.com
Ahoj,

Konfigurace projektu:
* Django 1.8
* django-storages 1.5
* DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

Soubory, uploadované uživateli jsou tedy na S3 a pokud zavolam obj.image.path, tak samozřejmě dostanu výjimku NotImplementedError: This backend doesn't support absolute paths.

Pro zobrazení na webu používám obj.image.url, ale já potřebuju soubor (obrázek) taky fyzicky na serveru proto, abych ho mohl vložit do PDFka (generované LaTeXem). Měl by někdo nápad, na nějaké elegantní řešení?

Mě napadly dvě možnosti:

1) Implementovat metodu path tak, aby soubor z S3 stáhla, uložila na disk a v případě opakovaného použití se jen zkontrolovalo, jestli se soubor na S3 nezměnil. Použití v kódu by pak bylo stejné, jako když je aktivní defaultní FileSystemStorage.

2) Vyřešit stažení a uložení (a zacachování) obrázku lokálně přímo v kódu, který řeší generování toho PDF a nepoužívat path.

Díky
Honza

Vladimir Linhart

unread,
Sep 13, 2016, 12:50:37 PM9/13/16
to django-cs
cau,

pouzivam toto: django-queued-storage
pred generovanim PDF ty soubory stahnu lokalne z S3 a pak uz se na ne pristupuje klasicky.

Vpodstate to dela co chces, pokud je soubor lokalne pristupny, tak ho muzes normalne pouzit,
stahovani to neresi, teda aspon ne v ty verzi co ja pouzivam.

Elegantni to asi neni, ale nemusis skoro nic programovat az na to stazeni.

V.




--
--
E-mailová skupina djan...@googlegroups.com
Správa: http://groups.google.cz/group/django-cs
---
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „django-cs“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e-maily ze skupiny, zašlete e-mail na adresu django-cs+unsubscribe@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/django-cs/CAKhpuXyr4e5QPwT56V7oxLwnAWYGdvDA_2M0hN3-FG0OYpGzjg%40mail.gmail.com.
Další možnosti najdete na https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages