Autor wpisu: singles, dodany: 16.06.2011 20:12, tagi: internet
Ostatnio rozwiązania „chmurowe” przeżywają rozkwit, a tylko czas pokaże, czy cała chmura, to tylko chwilowa moda, kolejny buzzword, czy jednak nowy kierunek rozwoju aplikacji internetowych. W dzisiejszych czasach w chmurze trzymamy coraz więcej danych – poczta, dokumenty, a coraz mniej treści jest przechowywanych na naszych lokalnych dyskach, a coraz więcej streamowanych z sieci. Nadal jednak wszystkie media uploadowane na wszelakie strony trzeba odpowiednio „obrobić”. Zdjęcia pomniejszych i zoptymalizować. Filmy przekonwertować na format odpowiedni dla sieci Web, utworzyć miniaturkę. Coraz częściej treści tego typu trzymane są na wszelkiego rodzaju CDNach – np Amazon S3.
A narzędzie, które mam zamiar dzisiaj opisać, realizuje wszystkie wymienione funkcje za nas. A jego nazwa to Transloadit.
Co to takiego?
Otóż to, transload.it to narzędzie służące do wszelkiego rodzaju konwersji materiału graficznego na inny format, udostępniające proste API oparte na JSONie. Metody API nazywane są w ramach systemu robotami, a na obecną chwilę jest ich 6. Oto one:
- /image/resize – zmiana rozmiarów obrazów, kąta nachylenia, kompresji, z kilkoma strategiami przycinania oraz możliwością tworzenia watermarków.
- /video/encode – enkodowanie wideo. Tutaj także mamy do wyboru różne strategie przycinania obrazu, możliwość dodania znaku wodnego. Dodatkowo, parametry filmu końcowego możemy ustalać ręcznie (za pomocą opcji
ffmpeg
, gdzie przekazujemy parametry bezpośrednio do enkodera) bądź wybierać z gotowych presetów: m.in:webm
,flash
czy teżiphone-high
. - /video/thumbs – tworzenie miniatur przesłanych plików video.
- /http/import – przydatne w momencie, kiedy chcemy dokonać operacji na pliku znajdującym się już w sieci. Normalnie, musielibyśmy taki plik pobrać, i ręcznie uploadować do serwisu. W przypadku skorzystania z tego robota, podajemy tylko url zasobu, a aplikacja zajmie się resztą.
- /s3/store – umożliwia automatyczne skopiowanie plików wynikowych na Amazon S3. Wystarczy podać nasze dane autoryzacyjne, a po kompresji automatycznie nasz plik zostanie uploadowany do chmury S3.
- /cloudgiles/store/ – funkcja podobna jak powyżej, z tym że dla Rackspace Hosting.
Jak to wykorzystać?
Bardzo prosto. Otóż to, w parametrze action
naszego formularza ustawiamy adres http://api2.transloadit.com/assemblies
, ewentualnie dodajemy plugin jQuery do pokazywania postępu ładowania, a w specjalnym parametrze formularza przekazujemy instrukcje dla robotów (możemy je zdefiniować bezpośrednio, albo podać tylko tzw/ template_id
, czyli identyfikator formularza znajdującego się na serwerze). Przykładowy zestaw poleceń prezentuje się następująco:
{ "steps":{ "encode":{ "use": ":original", "robot": "/video/encode", "preset": "iphone" "width": 320, "height": 240 }, "thumbs":{ "use": ":original", "robot": "/video/thumbs", "count": 4 }, "export":{ "use": ["encode", "thumbs"], "robot": "/s3/store", "bucket": "your-bucket", "key": "your-key", "secret": "your-secret" } } }
Po załadowaniu pliku wykonane zostaną następujące czynności:
- Wideo zostanie przekonwertowane do formatu rozumianego przez iPhone’a, z rozdzielczością 320×240.
- Z wideo zostaną wyeksportowane 4 miniaturki (co ważne, stanie się to równocześnie z pierwszą czynnością, dzięki zastosowaniu parametru
:original
) - Każdy plik po zakończeniu zostanie wyeksportowany do chmury Amazona.
A co się dzieje w momencie, kiedy nie mam konta na Amazonie? Jak pobrać moje pliki?
Po zakończeniu konwersji w odpowiedzi informacje w JSONie, a tam między innymi URL do efektów pracy narzędzia. Jest on aktywny przez kilka godzin – cytując dokumentację:
The url where you can access this file. This is either a url to your S3 bucket, or a temporary url on one of our servers. Temporary urls will expire after a few hours, so you need to make sure to move your files elsewhere if you aren’t using a storage robot.
Prawda że proste?