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

OSCHINA-MIRROR/dromara-x-file-storage

 / Детали:

[Отзыв о проблеме]: При использовании FTP для высоконаправленной загрузки в сценариях высокой...

Предстоит сделать
Владелец
Создано  
28.02.2025

концентрации, возникает ошибка "change dir to [/xx/xxx] error". Количество загружаемых файлов составляет около 120 000, каждый файл имеет размер нескольких килобайт.

Есть ли уже существующий такой вопрос?

Связанные зависимости и версии

X File Storage версия: 2.2.1
SpringBoot версия: 2.5.4
Solon версия:
JVM версия: 1.8
Другие зависимости и их версии:

Конфигурационные файлы

dromara:
  x-file-storage: 
    default-platform: minio-ftp-1 # По умолчанию используемый платформой хранения
    ftp:
      - platform: minio-ftp-1 # Определение платформы хранения
        enable-storage: true  # Включить хранение
        host: xxx # Хост, например: 192.168.1.105
        port: 8021 # Порт, по умолчанию 21
        user: xxx # Имя пользователя, по умолчанию anonymous (анонимный)
        password: "xxx" # Пароль, по умолчанию пустое значение
        storage-path: /equipment/ # Путь к хранилищу, можно использовать вместе с Nginx для доступа, обратите внимание на завершение "/", по умолчанию "/"
        is-active: true
        pool:
          max-total: 32
          max-idle: 8
          min-idle: 4

Код воспроизведения ошибки

FileInfo fileInfo = fileStorageService.of(file)
                .setPath("2024-11-16/19/")
                .setSaveFilename(file.getName())
                .upload();

Ожидаемый результат

При указании пути при загрузке файла создание этого пути должно быть успешным, но вместо этого возникают ошибки создания пути, а также файлы могут сохраняться в неправильной директории.
Объём данных загружаемых файлов составляет около 120 тысяч, каждый файл имеет размер порядка нескольких килобайт.

FTP-сервис предоставлен Minio, основная цель — использование FTP для повышения скорости загрузки файлов в Minio.

Реальный результат или подробное сообщение об ошибке

Ожидаемый путь сохранения: /equipment/2024-11-16/19/facility-2024-11-16_19-05-12.678.zip
Фактический путь сохранения: /equipment/2024-11-16/facility-2024-11-16_19-05-12.678.zip

Также может происходить повторное создание родительской директории внутри директории.

2025-01-20 15:16:02.217 ERROR --- [load-file-58960] c.j.a.c.w.task.UploadWorker    - Загрузка файла не удалась! platform: minio-ftp-1, filename: facility-2024-11-16_19-05-12.678.zip
org.dromara.x.file.storage.core.exception.FileStorageRuntimeException: Загрузка файла не удалась! platform: minio-ftp-1, filename: facility-2024-11-16_19-05-12.678.zip
    at org.dromara.x.file.storage.core.exception.ExceptionFactory.upload(ExceptionFactory.java:77)
    at org.dromara.x.file.storage.core.platform.FtpFileStorage.save(FtpFileStorage.java:105)
    at org.dromara.x.file.storage.core.upload.UploadActuator.lambda$execute$0(UploadActuator.java:104)
    at org.dromara.x.file.storage.core.aspect.UploadAspectChain.next(UploadAspectChain.java:34)
    at org.dromara.x.file.storage.core.upload.UploadActuator.execute(UploadActuator.java:112)
    at org.dromara.x.file.storage.core.upload.UploadActuator.execute(UploadActuator.java:44)
    at org.dromara.x.file.storage.core.upload.UploadPretreatment.upload(UploadPretreatment.java:1036)
    at com.joinu.analyst.common.watch.task.UploadWorker.upload(UploadWorker.java:134)
    at com.joinu.analyst.common.watch.task.UploadWorker.action(UploadWorker.java:72)
    at com.joinu.analyst.common.watch.task.UploadWorker.action(UploadWorker.java:31)
    at com.joinu.common.async.wrapper.WorkerWrapper.workerDoJob(WorkerWrapper.java:363)
    at com.joinu.common.async.wrapper.WorkerWrapper.fire(WorkerWrapper.java:321)
    at com.joinu.common.async.wrapper.WorkerWrapper.work(WorkerWrapper.java:150)
    at com.joinu.common.async.wrapper.WorkerWrapper.work(WorkerWrapper.java:173)
    at com.joinu.common.async.executor.Async.lambda$beginWork$0(Async.java:54)
    at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
Caused by: cn.hutool.extra.ftp.FtpException: Ошибка изменения текущей директории на [/equipment/2024-11-16/19/], возможно, директория отсутствует!
    at cn.hutool.extra.ftp.Ftp.upload(Ftp.java:561)
    at org.dromara.x.file.storage.core.platform.FtpFileStorage.save(FtpFileStorage.java:86)
    ... 17 общих кадров

Скриншоты или видео

Скриншот

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
question
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/dromara-x-file-storage.git
git@api.gitlife.ru:oschina-mirror/dromara-x-file-storage.git
oschina-mirror
dromara-x-file-storage
dromara-x-file-storage