1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jobob-gmfs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 7.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 08:05 e1b4b42

Golang на основе GridFs: распределённый файловый сервис GMFS

  • Запуск MongoDB:

    • Команда для запуска MongoDB в Windows:

      mongod.exe --dbpath "C:\Program Files\MongoDB\data"

  • Giraffe:

    go run giraffe start

API

Ключ Значение
code Код ответа
1000 Нормальное сообщение
1001 Сообщение об ошибке
1002 Ошибка сохранения
1003 Ошибка чтения
1004 Превышение лимита размера (по умолчанию менее 80 Мбайт)
1005 Изображение содержит неприемлемое содержание
1006 Неподдерживаемый файл
Ключ Значение
message Текст сообщения
1 Если код равен 1000, то message — это результат
2 В остальных случаях — описание ошибки

| Ключ | Значение | | --- --- | --- --- | | rdm | Случайное число (используется для сброса изображения) |

Ключ Значение
mime Тип файла, например «image/jpeg», «application/pdf» и т. д.
Ключ Значение
suffix Расширение загружаемого файла

Демонстрация (demo)

Адрес: http://localhost:1323/demo.html

(1) POST-запрос для загрузки

Адрес: /upload.html

Параметры:

  • file — атрибут файла;
  • nude — опционально (проверка на неприемлемое содержание, true — да, false — нет);
  • online — опционально (разрешить глобальный доступ к сети, online = false не разрешает доступ, пока не будет установлено значение true);
  • resetId — опционально (если resetId и resetRdm присутствуют одновременно, заменяет указанное изображение);
  • resetRdm — опционально (если resetId и resetRdm присутствуют одновременно, заменяет указанное изображение).

Демонстрационный адрес: http://localhost:1323/upload.html.

Ответ JSON:

{
    "code": "1000",
    "message": "55c83f2a07986a0838000003",
    "mime": "image/jpeg",
    "rdm": "L5Ap4",
    "suffix": ".jpg"
}

(2) GET-запрос для загрузки

Адрес: /proxy.html

Параметры:

  • uri — адрес файла;
  • nude — опционально (проверка на неприемлемое содержание, true — да, false — нет);
  • online — опционально (разрешить глобальный доступ к сети, online = false не разрешает доступ, пока не будет установлено значение true);
  • resetId — опционально (если resetId и resetRdm присутствуют одновременно, заменяет указанное изображение);
  • resetRdm — опционально (если resetId и resetRdm присутствуют одновременно, заменяет указанное изображение).

Демонстрационный адрес: http://localhost:1323/proxy.html?uri=http://p5.qhimg.com/dmt/490_350_/t01d49b7191cbc97c11.jpg.

Ответ JSON:

{
    "code": "1000",
    "message": "55c83f2a07986a0838000003",
    "mime": "image/jpeg",
    "rdm": "L5Ap4",
    "suffix": ".jpg"
}

(3) Отображение (вывод потока байтов без изменений)

Адрес: dispaly/:id.html?watermark=true

Параметры:

  • id — уникальный идентификатор (сообщение, возвращаемое в случае успешной загрузки);
  • watermark — опционально (действует только для изображений, глобальная настройка отключена, запрос может включить водяной знак через параметр true).

Демонстрационный адрес: http://localhost:1323/dispaly/55c83f2a07986a0838000003.html.

Обработка масштабирования изображения

  1. Равномерное уменьшение до 100 пикселей: http://localhost:1323/dispaly/55c83f2a07986a0838000003_100.html.

  2. Уменьшение до 100x100 пикселей: http://localhost:1323/dispaly/55c83f2a07986a0838000003_100x100.html.

Примечание: ограничение по ширине и высоте составляет более 50 пикселей, ширина и высота не должны превышать удвоенное фактическое количество пикселей.

(4) Загрузка файла

Адрес: /download/:id.html?name=xx

Параметры:

  • id — уникальный идентификатор (сообщение, возвращаемое при успешной загрузке);
  • name — опционально (имя файла, по умолчанию используется id).

Демонстрационный адрес: http://localhost:1323/download/55c83f2a07986a0838000003.html.

Другой демонстрационный адрес: http://localhost:1323/download/55c83f2a07986a0838000003.html?name=20150806.

(5) Поиск файла (поиск по md5 и размеру)

Адрес: /search/:md5/:size.html

Параметры:

  • md5 — значение md5 файла;
  • size — размер файла (в байтах).

Демонстрационный адрес: http://localhost:1323/search/3fbef3c587cf53c88b282b614cad105f/34562.html.

Ответ JSON:

{
    "code": "1000",
    "message": "55c83f2a07986a0838000003",
    "mime": "image/jpeg",
    "rdm": "L5Ap4",
    "suffix": ".jpg"
}

(6) Онлайн-обработка (обновление файлов)

Адрес: /online/:id/:rdm.html

Параметры:

  • id — идентификатор;
  • rdm — случайное число.

Демонстрационный адрес: http://localhost:1323/online/55c83f2a07986a0838000003/L5Ap4.html.

Ответ JSON:

{
    "code": "1001",
    "message": true
}

Будущее

Мы приветствуем любые предложения по улучшению GMFS и готовы помочь в его совершенствовании.

Открытое спонсорство (Alipay)

![GitHub](https://raw.githubusercontent.com/leqwang/kisso/master/images/donate.png «Открытое спонсорство (Alipay)»)

Авторские права

Apache License, Version 2.0

Следуйте за мной

![Программа дневника](http://git.oschina.net/uploads/images/2016/0121/093728_1bc1658f_12260.png «Программа дневника»)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/jobob-gmfs.git
git@api.gitlife.ru:oschina-mirror/jobob-gmfs.git
oschina-mirror
jobob-gmfs
jobob-gmfs
master