/ / Django: Przesyłanie pliku do s3 przy użyciu boto - django, przetwarzanie obrazu, amazon-s3, boto

Django: Przesyłanie plików do s3 przy użyciu boto - django, przetwarzania obrazu, amazon-s3, boto

próbuje upload images (średni rozmiar 12 MB) na mój serwer (django przy użyciu PIL), a następnie przetwarzam je w celu zmniejszenia obrazów i tworzenia miniatur.

Podczas tego procesu nie zapisuję obrazów na dysku lokalnym serwera, używam In Memory file i przetwarzam to. Przesyłam zdjęcia do s3, używając boto i mam oryginalny obraz, przeskalowany obraz i miniaturę, które należy przesyłać jeden po drugim (wszystkie te trzy są nadal obecne w mojej pamięci).

Ten proces jest bardzo czasochłonny i czasami serwer, którego używam (Digital Ocean 512 MB RAM), wyrzuca błąd pamięci.

Czy mogę wiedzieć, czy istnieje lepszy sposób przesyłania zdjęć

Każda pomoc jest bardzo ceniona. Z góry dziękuję.

Odpowiedzi:

1 dla odpowiedzi № 1

Nie pracowałem dużo z django i boto, ale możesz wypróbować kilka sugestii:

  • Uaktualnij swój serwer. jeśli zamierzasz przetwarzać tak dużo dużych plików, przetwarzanie obrazu wymaga dużo pamięci.
  • Możesz spróbować wdrożyć kolejki (tj. Za każdym razem, gdy otrzymasz przesyłanie) żądanie i plik są większe niż kolejkowanie i przetwarzanie po bieżącym proces jest zakończony). Możesz użyć seler do tej pracy.
  • Jeśli nie potrzebujesz tak dużych plików, możesz zmniejszyć obraz najpierw rozmiar po stronie klienta, a następnie przekaż go do serwera.