Wpis z mikrobloga

W jaki najprostszy i najwydajniejszy sposób można przesyłać i przechowywać zdjęcia?

Mam w robocie Web Service w C# oparty na WebAPI który jest wywoływany przez aplikację mobilną z której wysyłane są zrobione zdjęcia - nic wielkiego, same dokumenty od przedstawicieli. Obecnie transmisja oparta jest na JSON, a kodowanie zdjęć o BASE64, ale widzę, że nie jest to optymalne rozwiązanie (działających 100 mobilów zżera mi dziennie ponad 3GB miejsca na serwerze, a gdzie docelowe 2000 urządzeń) i chciałbym to jakoś zmienić, stąd pytanie

1. Jest inny - bystrzejszy sposób przesyłania zdjęć z tabletu do Web Service? (Nie chce, a właściwie nie mogę bawić się w ich stream)
2. Jak najlepiej przechowywać ów zdjęcia? Obecnie składowane są w postaci PNG na serwerze z odnośnikiem do niego w bazie, a chciałbym całość przenieść do bazy tylko nie wiem jaka DB sprawdzi się najlepiej i nie wiem czy to ma sens. Azure odpada.
3. Może wszystko jest OK, ale coś mam źle ze zdjęciem? Przesyłam je jako PNG. Może JPG, GIF czy inne cudo było by lepsze?

#programowanie

  • 4
@Nartenlener: Co do przesyłania to jeżeli masz JSON, który jest formatem tekstowym, to dane binarne trzeba jakoś kodować. Base64 daje Ci około 33% narzutu. Możesz rozważyć wykorzystanie binary json czyli BSON. Pytanie tylko czy transfer i przepustowość stanowią problem?

Co do składowania to jeżeli nie trzymasz przesłanych plików zakodowanych base64 to pozostaje rozważyć ich dalszą kompresję. Zmiana parametrów PNG lub w ogóle zmiana formatu. Wszystko zależy do czego te pliki potem
@AsYlum: Dzięki za cenne wskazówki! O tym BSONie nie słyszałem, więc muszę się przyjrzeć tematowi. Transfer i przepustowość nie jest problemem, ale problemem są szybko zapełniające się dyski na serwerze