Microsoft платит за ваше безлимитное облачное хранилище

в 17:47, , рубрики: api, cloud services, cloud storage, file api, file upload, github, облачные сервисы, хранение данных, хранилища данных

Появилась возможность превратить ваш GitHub аккаунт в Безлимитное Облачное Хранилище Данных. И это вовсе не миф.

Согласно с информацией, данной GitHub, каждый пользователь может создать бесконечное количество публичных и приватных репозиториев. Мы можем загружать до 1000 Мб в один репозиторий и каждый из файлов не должен превышать размера в 100 Мб. Тут попахивает возможностью создать бесплатное и безлимитное облачное хранилище, не так ли?

Я осознаю что на сегодняшний день уже существует множество вариантов хранения данных в облаке и такие лидирующие компании, как Dropbox, Google Drive или даже Amazon S3 предоставляют свои услуги по очень низким ценам, не уступая при этом и качеством. Но решение, основанное на GitHub CDN может быть крайне полезно если вам нужно максимально быстро и просто загрузить файлы в облако, и в то же время не беспокоится о надежности и доступности ваших валов в любое время. Даже через десятки лет.

Как загрузить любой файл в репозиторий GitHub?

Вы можете спросить, «В чем проблема, Карл? Почему я просто не могу сделать git pull, git push?» Спасибо за вопрос. И ответ мой максимально прост: Я не хочу использовать git pull каждый раз, когда я хочу загрузить новый файл. Я хочу чтобы все было максимально просто. В один клик.

И никакой проблемы не было, если бы эта чудесная кнопка имела соответствующий API. Но, к сожалению его нет.

image

Но я нашел несколько вариантов чтобы «сделать» это. И вот наипростейший из них.

Загрузка файла в GitHub

Один из наиболее быстрых и простых вариантов загрузить файл в GitHub это создавать новую ветку для каждого загружаемого файла.

Подробнее:

В первую очередь, создайте новый репозиторий с файлом лицензии (или каким нибудь другим) и ветке master. Вы можете это сделать с одним POST запросом используя GitHub API:

axios.post(`https://api.github.com/user/repos?access_token=${token}`, {
    name: `block1`,
    description: `Block 1`,
    homepage: "https://morejust.store/",
    private: false,
    has_issues: false,
    has_projects: false,
    has_wiki: false,
    license_template: "unlicense"
  });

Далее, создавайте новую ветку для загрузки каждого нового файла. Так-же, не забудьте что имя ветки не должно совпадать с уже существующими, поэтому рекомендую добавлять Unix timestamp к имени ветки.

И наконец-то, мы можем пушнуть (push) нашу ветку в GitHub:

git push --set-upstream origin $BRANCHNAME

После, вы еще можете удалить все локальные ветки чтобы не занимать лишнее дисковое пространство:

git checkout master
git branch -D $BRANCHNAME

Был реализован bash-скрипт который все это делает за вас, ссылка тут.

Как я могу создать свое безлимитное хранилище?

Ах да! Для этого был создан сервис Morejust.store — приложение, которое может создать бесплатное безлимитное хранилище для вас. По ссылке будет и проект на GitHub для наглядности процесса.

Парни, какой же кайф пользоваться своим-же сервисом. Вот реально удобно. Пишу статью на Хабр, нужно вставить картинку, а он принимает только картинки со ссылками. 2 секунды, картинка уже в облаке и я вставляю ссылку на хабр. Ну не сказка ли?
— Автор, на момент написания статьи.

P.S. Мы не злоупотребляем никакими возможностями сервиса GitHub и никаких взломов / обходов мы не делали. Все «заводские» лимиты и условия GitHub соблюдены, мы лишь сделали удобно там, где ранее это было неудобно.

Спасибо.

Автор: Виктор Кириллов

Источник

* - обязательные к заполнению поля