У мене є дві новини. Традиційно - хороша і погана.
Добра новина
Вчора прийшло повідомлення, що Bitcasa нарешті запустила API, поки в бета-версії. Також представлені SDK на PHP і JAVA, які опубліковані на GitHub. Надалі обіцяють SDK для Python, iOS, Android, Ruby та інших.
Відразу після реєстрації дають 5 ГБ місця, і можна за рахунок рефів (по гігабайту за установку) та інших «квестів» отримати до 20 безкоштовних ГБ. За $99/рік пропонується 1 ТБ, а $999/рік - необмежене місце.
API дозволяє виконувати такі дії:
Каталоги
- Перегляд списку
- Створення
- Вилучення
- Перейменування
- Пересування
- Копіювання
Файли
- Завантаження
- Завантаження
- Вилучення
- Перейменування
- Пересування
- Копіювання
А тепер погана новина
Поліз тестувати, і виявилося, що поки все занадто сиро, та й є відверті фейли. Отже, про чудові недоліки.
Не помічено, як за допомогою API отримати ім'я користувача і доступну/використану квоту. Також невідомо, чи є якісь обмеження за розмірами файлів. Скачування (download) підтримує заголовок Range, відповідно дозволяє завантажити будь-який шматок файлу. А ось з Upload традиційно для багатьох хмарних сховищ не так райдужно, і завантаження (upload) частинами або продовження завантаження після розриву зв'язку неможливо.
Для авторизації програм використовується щось схоже на OAuth 2, але несумісне з OAuth 2. Ось питається навіщо робити майже те саме, просто трохи по іншому назвати параметри? Замість code використовувати authorization_code, замість client_secret - secret, замість redirect_uri - redirect, тощо. Також відсутній параметр state, який дозволяє передавати різні дані з програми на redirect. Імхо, за таке потрібно цвях в голову розробникам забивати... Ну є ж стандарт, навіщо робити свій велосипед відламуючи деталі у готового, тим більше не пропонує ніяких переваг? Ну не подужали реалізувати OAuth 2 повністю, нехай хоч те, що є буде сумісно. А тепер виходить, що на всіх сховищах, які використовують OAuth 2 авторизацію, можна використовувати один і той же модуль, а для Bitcasa потрібен окремий...
При спробі авторизації, постійно вимагає ввести логін і пароль, хоч ти і залогінний вже. Також ніяких повідомлень про те, що якийсь додаток хоче отримати доступ до ваших файлів і кнопочок дозволити чи ні. Незважаючи на наявність у параметрах програми Redirect Uri, Bitcasa його ігнорує (можливо тому, що поки додаток в Sandbox) і переадресує на будь-яку адресу вказану в запиті.
При цьому використовується тільки авторизація з використанням коду авторизації. Також дещо незвично те, що токен передається в рядку запиту, якось звичніше використовувати заголовок Authorization.
Незважаючи на те, що Bitcasa позиціонується, як захищене сховище з шифруванням на боці клієнта, будь-яких згадок про необхідність шифрування файлів перед завантаженням їх за допомогою API не помічено, в PHP SDK теж ніякого шифрування. Хіба що шляхи файлів у base64 кодуються.
Загалом таке відчуття, що найскладніше для розробників API чергового хмарного сховища - зробити так, щоб було максимально несумісне і несумісне з API інших сховищ.
Будемо сподіватися, що описані корявості в майбутньому поправлять...
