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

OSCHINA-MIRROR/475660-xyFS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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 )

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

Введение

Программное обеспечение для хранения файлов в частных облаках (OSS), высокодоступная микросервисная система файлового облачного хранилища с файловой системой (частное облачное хранилище файлов), обеспечивает функциональное разделение операций по управлению документами, загрузкой, скачиванием, классификацией, совместным использованием, группировк... Развернуть Свернуть
Apache-2.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