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

OSCHINA-MIRROR/475660-xyFS

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

xyFS私有OSS文件存储服务

Проект введения

Одностадийный корпоративный частный файловый сервис. Ориентирован на предоставление системы хранения файлов для разработки программного обеспечения, поддерживает операции загрузки, скачивания, классификации, группировки, аудита и статистики. Предоставляет унифицированный частный файловый сервис OSS для корпоративных проектов.

Включает в себя защиту конфиденциальных корпоративных файлов с помощью частного хранилища, а также возможность подключения к общедоступным облачным решениям. Первоначальной целью разработки было применение в качестве офлайн-хранилища для мгновенных сообщений xyTalk корпоративного IM.

Клиент для ПК с открытым исходным кодом (в разработке):

Клиент для iOS с открытым исходным кодом (в разработке):

Клиент для Android с открытым исходным кодом (не открыт).

xyFS — это не только независимая файловая система, но и гибкая интеграция через интерфейсы со следующими сервисами:

  1. Частный файловый OSS-FS (самостоятельная разработка, открытый исходный код).
  2. Частное распределённое хранилище файлов: MongoDB GridFS.
  3. Частное распределённое хранилище файлов: FastDFS.
  4. Частное распределённое хранилище файлов: SeaweedFS.
  5. Частное корпоративное облачное хранилище: Seafile.
  6. Частное BASE64 реляционное хранилище (отключено).
  7. Публичное облачное хранилище: Alibaba OSS.
  8. Публичное облачное хранилище: Qiniu.
  9. Публичное облачное хранилище: Tencent CFS.

В области сторонних частных облачных сервисов я рекомендую SeaweedFS и GridFS. В области публичных облачных сервисов рекомендую Alibaba OSS и Qiniu. SeaweedFS — высокопроизводительная распределённая файловая система с встроенным Rest API. Подробнее можно узнать в моём блоге: https://www.cnblogs.com/starcrm/p/9377851.html.

Подробная документация проекта

http://xyfs.mydoc.io/

Адрес доступа во время выполнения:

Состав программного обеспечения

— xyFS, бэкенд управления; — веб-интерфейс xyPortal, часть «документальная библиотека»; — HTTP API xyFS; — Java-клиент xyFS.

Используемые технологии

— Spring Boot, MVC, AOP, Actuator, Swagger; — Dbcp2, Druid, два режима пула соединений с базой данных; — JPA/Hibernate; — Ehcache; — HTML, только Bootstrap4. Используется только чистый Bootstrap4, без других интерфейсных фреймворков. Чистый, естественный, лёгкий, простой, легко обслуживаемый. — Thymeleaf/Freemarker, два шаблона двигателей могут быть переключены; — MySQL, Oracle, SQLite, три модели баз данных могут быть выбраны; — другие: Gradle, Tomcat, Nginx.

Руководство по установке и использованию

— Импортировать проект Gradle; — щёлкнуть правой кнопкой мыши по проекту, выбрать Refresh Gradle Project; — запустить метод: щёлкните правой кнопкой мыши на «FileSystemApplication.java», выберите «запустить как» — «Java App..». Или выберите Gradle Task, нажмите «bootRun»; — если появится следующее сообщение, среда выполнения уже завершена: 2018-07-09 16:06:56,794 INFO (StartupInfoLogger.java:59) — Started FileSystemApplication in 14.575 seconds (JVM running for 15.457); если появится сообщение («Exception opening socket») localhost:27017, не паникуйте, это просто означает, что mongodb не установлен, и это не повлияет на использование системы. доступ: * http://localhost:9091/files/index/.

Разработка конфигурации

Конфигурацию можно изменить в файле application.properties.

Например, порт сервера tomcat: server.port=9091

Следует ли переименовывать файлы? Если это личный файл, переименуйте его в username_ + исходное имя файла. Если это групповой файл, переименуйте в groupid_ + оригинальное имя файла: storage.rename = true

Хранилище. Можно выбрать несколько источников данных, чтобы облегчить резервное копирование: тип: xyfs\Seafile\FastDFS\SeaweedFS\MongoDB\aliOSS\qiniu\CFS — storage.todisk = true; — storage.toqiniu = true; — storage.tofastdfs = false; — storage.tomongodb = false; — storage.toseaweedfs = false; — storage.toalioss = false; — storage.tocfs = false.

Установите источник загрузки. Выберите один из следующих: тип: xyfs\Seafile\FastDFS\SeaweedFS\MongoDB\aliOSS\qiniu\CFS — storage.downloadfrom = xyfs.

Описание API загрузки

Способ 1: используйте HTTP Post API Post API URL: /fileUploadPost Parameters:

  • @param MultipartHttpServletRequest request;
  • @param Integer appid — идентификатор приложения;
  • @param String username — имя пользователя, загрузившего файл;
  • @param String groupid — название группы MUC, если это личный файл, то не требуется. Return: {statusCode=код состояния, content='имя файла после загрузки'}.

Пример: {statusCode=200, content='wangxin_Tigase разработка документа.doc'}

Метод 2: java client загрузка (см. ClientMultipartFormPost.java)

Метод загрузки: /**

  • Выполнить загрузку файла
  • @param httpClient HttpClient клиентский экземпляр, передайте null, чтобы автоматически создать один
  • @param remoteFileUrl URL для получения удалённого файла
  • @param localFilePath локальный путь к файлу
  • @param appid идентификатор приложения
  • @param username имя пользователя, загружающего файл
  • @param groupid название группы MUC, если это личный файл, то не требуется
  • @param charset запрос кодировки, по умолчанию UTF-8
  • @param closeHttpClient закрыть клиент HttpClient после завершения запроса
  • @return
  • @throws ClientProtocolException
  • @throws IOException */ public static HttpResult executeUploadFile(CloseableHttpClient httpClient, String remoteFileUrl, String localFilePath, String appid, String username, String groupid, boolean closeHttpClient, String charset) ......

Как вызвать метод загрузки: package xy.FileSystem.Client;

import xy.FileSystem.File.HttpResult; import xy.FileSystem.Utils.HttpHelper;

//Post загрузка демонстрации public class ClientMultipartFormPost {

public static void main(String[] args) throws Exception {

    HttpResult result = HttpHelper.executeUploadFile(HttpHelper.createHttpClient(),

... Данный фрагмент представляет собой программный код на языке Java. В запросе нет текста, который можно было бы перевести.

В запросе есть фрагменты кода, которые сохранены без изменений:

  • http://localhost:9091/fileUploadPost — URL-адрес для отправки запроса;
  • /downloadByFilename — путь к API для скачивания файла;
  • D://Tigase 开发文档.doc — полный путь к файлу, который нужно загрузить;
  • "wangxin_Tigase 开发文档.doc" — пример имени файла после загрузки;
  • storage.diskprefix = http://localhost:9091/files/ — конфигурация хранилища файлов;
  • storage.qiniuprefix = http://pbby0yzdu.bkt.clouddn.com/ — префикс для доступа к хранилищу Qiniu;
  • spring.jpa.hibernate.ddl-auto = create — настройка автоматического создания таблиц в базе данных при первом использовании;
  • spring.datasource.dbcp2.max-wait-millis=10000 — максимальное время ожидания подключения к базе данных (в миллисекундах);
  • spring.datasource.dbcp2.min-idle=5 — минимальное количество незанятых соединений в пуле подключений к базе данных;
  • spring.datasource.dbcp2.initial-size=5 — начальное количество подключений в пуле подключений к базе данных.

Также в запросе присутствуют фрагменты программного кода с параметрами, значения которых не указаны. Эти параметры оставлены без перевода. ## Контакты разработчика

По вопросам сотрудничества, ошибок и предложений пишите на электронную почту 475660@qq.com.

Обратите внимание: этот продукт я разработал в свободное время для проверки концепции и тренировки навыков, в настоящее время в нём ещё много ошибок.

Мои основные проекты с открытым исходным кодом: https://gitee.com/475660/xyTalk-pc/.

Мой блог: https://www.cnblogs.com/starcrm/.

Электронная почта: 475660@qq.com.

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

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

1
https://api.gitlife.ru/oschina-mirror/475660-xyFS.git
git@api.gitlife.ru:oschina-mirror/475660-xyFS.git
oschina-mirror
475660-xyFS
475660-xyFS
master