pondělí 22. října 2012

Upload souboru do Box.net v Grails

O víkendu jsem tvořil CMS a chtěl jsem vyzkoušet nějakou službu, kam bych mohl ukládat obrázky. Mezi službami jsem zkoušel i Box.net. Cílem bylo umožnit upload obrázku do mého osobního box.net (mám 50 GB místa a neuložil jsem tam zatím nic).

V dokumentaci box.net bylo něco takového:

curl https://www.box.com/api/2.0/files/content \ -H "Authorization: BoxAuth api_key=API_KEY&auth_token=AUTH_TOKEN" \ -F filename=@FILE_NAME \ -F folder_id=FOLDER_ID

Je to pomocí nástroje cURL. Jednoduše vysvětleno, pro upload je potřeba provést POST na adresu https://api.box.com/2.0/files/content spolu s hlavičkou Authorization, kde uvedete nějaké ty tokeny, a dva formulářové elementy filename a folder_id + uploadovaný soubor.

private String sendHttps(String httpUrl, byte[] data, String filename) {

        HttpClient httpclient = new DefaultHttpClient()
        httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1)
        HttpPost httppost = new HttpPost(httpUrl)

        Map headers = ["Authorization": "BoxAuth api_key=${apiKey}&auth_token=${authToken}"]  // hlavička s autorizačními údaji
        headers.each {k, v ->
            httppost.addHeader(k, v)
        }

        MultipartEntity mpEntity = new MultipartEntity()  // pro POST formuláře s přílohou
        ContentBody cbFile = new ByteArrayBody(data, filename)
        mpEntity.addPart("filename", cbFile)  // tato část mi dělala největší potíže
        mpEntity.addPart("folder_id", new StringBody("445743883")) // ID složky na box.net
        httppost.setEntity(mpEntity)
       
        HttpResponse response = httpclient.execute(httppost)
        HttpEntity resEntity = response.getEntity()
       
        httpclient.getConnectionManager().shutdown()
...
    }
Pro připojení jsem použil knihovnu Apache HttpComponents. Zkoušel jsem i nějaký plugin do Grails, ale u nich jsem měl problém vytvořit formulářový element spolu s tím souborem a poslat to celé.

pondělí 8. října 2012

Austrálie - acceptance letter

Konečně jsem přijatý na University of Queensland! Mám už přístup do IS školy, ale provádět akce budu moci až od 19.11.2012.

Přihlášky z předchozího článku jsem nakonec vytiskl, podepsal, oscanoval a poslal emailem do Austrálie. Při  vyplňování jsem si nebyl jistý u jedné položky, a to je Student ID. Nakonec jsem poslal 2x ten samý papír, jednou se Student ID jako ISIC číslo, a podruhé jako číslo uvedené v přihlášce.
Obavy jsem měl také z placení pojištění, nakonec it was easy. Prachy za pojištění se strhávají tak, že stačí mít kartu, kterou lze platit přes net (klasický VISA). Do přihlášky se vypíše číslo karty, datum platnosti a vlastnoruční podpis a další den už na účtu jste chudší o nějaké litry.

 Nyní již zbývá jen zařídit vízum a koupit letenky do Austrálie. V novém emailu jsem dostal dokument, se kterým se mám dostavit do Vídně. Není tam uvedený žádný email, kam žádost o vízum poslat, takže možná budu muset zajít osobně do Vídně. We'll see.