Я хочу добавить файл необработанного набора данных в свой репозиторий dagshub (мой первый репозиторий, который используется вместе с учебным пособием по MLflow).
Вот строка, которая доставляет мне неприятности:
repo = dagshub.upload.Repo(USER_NAME,REPO_NAME)
repo.upload(local_path='data/winequality.txt',
remote_path='data/raw/winequality.txt',
commit_message='Added Raw Data',
versioning='dvc')
и это ошибка, которую я получаю:
Uploading files (1) to "USER_NAME/REPO_NAME"...
---------------------------------------------------------------------------
DagsHubAPIError Traceback (most recent call last)
<ipython-input-49-e8d1e8493248> in <cell line: 4>()
2 repo = dagshub.upload.Repo(USER_NAME,REPO_NAME)
3
----> 4 repo.upload(local_path='data/winequality.txt',
5 remote_path='data/raw/winequality.txt',
6 commit_message='Added Raw Data',
2 frames
/usr/local/lib/python3.10/dist-packages/dagshub/upload/wrapper.py in upload(self, local_path, commit_message, remote_path, **kwargs)
286 else:
287 file_to_upload = DataSet.get_file(str(local_path), remote_path)
--> 288 self.upload_files([file_to_upload], commit_message=commit_message, **kwargs)
289
290 def upload_files(
/usr/local/lib/python3.10/dist-packages/dagshub/upload/wrapper.py in upload_files(self, files, directory_path, commit_message, versioning, new_branch, last_commit, force)
375 timeout=None,
376 )
--> 377 self._log_upload_details(data, res, files)
378
379 # The ETag header contains the hash of the uploaded commit,
/usr/local/lib/python3.10/dist-packages/dagshub/upload/wrapper.py in _log_upload_details(self, data, res, files)
413 log_message(f"Got unknown successful status code {res.status_code}")
414 else:
--> 415 raise determine_upload_api_error(res)
416
417 def _poll_mirror_up_to_date(self):
DagsHubAPIError: file missing from storage:
Required resource is missing from the storage, is '' stored in your repository DagsHub storage?
Структура файла репо выглядит следующим образом:
Локальный диск:
корень/
|...данные/
|... винокачество.txt
Дистанционно:
корень/
|...данные/
|...сырой/
Обратите внимание, что «raw» — это версия, контролируемая DVC, но документация dagshub показывает, что это можно сделать следующим образом: Загрузить данные
Не уверен, чего мне не хватает.
Эй, Дин, спасибо. Мой репозиторий здесь: dagshub.com/delta2echo/MLflow.Demo Мне кажется, что я упускаю что-то очевидное, поскольку знаю, что это должно быть просто. Я успешно загрузил другие файлы, но не файл данных, как показано выше.
Понятно, спасибо, что поделились. Глядя на этот репозиторий, кажется, что вам не хватает некоторых файлов DVC, которые должны были быть там ранее: dagshub.com/delta2echo/MLflow.Demo/src/main/data/raw. Я предполагаю, что это не удается, поскольку вы пытаетесь загрузить в папку, но он не может найти текущее содержимое папки. Я понимаю, в чем здесь проблема. Поскольку вы начали с шаблона, который имеет некоторую структуру с DVC, но файлы не помещаются в него должным образом, он не позволит вам добавить что-либо новое. Если вы попробуете другой путь, которого еще не существует, он сработает.

Похоже, что проблема вызвана отсутствием файлов, отслеживаемых DVC, что не позволяет добавлять новые файлы в каталог. Чтобы решить проблему, запустите следующий код:
pip install dvc "dvc[s3]", если он еще не установлен.
git clone https://dagshub.com/<user_name>/<repo_name>.git
cd <repo_name>
dvc remote add origin --local s3://dvc
dvc remote modify origin --local endpointurl https://dagshub.com/<user_name>/<repo_name>.s3
dvc remote modify origin --local access_key_id <your_token>
dvc remote modify origin --local secret_access_key <your_token>
Затем, как только все будет настроено, выполните следующее:
mkdir -p data/raw
dvc commit data/raw.dvc
dvc push -r origin
Затем запустите свой код. Теперь это будет работать!
При этом мы, вероятно, тоже можем улучшить это с нашей стороны, поэтому я поделюсь этим с командой инженеров!
Спасибо за вопрос :)
Спасибо за дополнительную информацию. Я следовал инструкциям, которые вы изложили, но в итоге получил эту ошибку: |Сбор |3.00 [00:00, 58,5 записей/с] |Отправка |Запрос удаленного кэша: 0% 0/1 [00:00<?, ?files/s] ] |Запрос удаленного кэша: 0% 0/1 [00:00<?, ?files/s{'info': ''}] |Нажатие |ОШИБКА: непредвиденная ошибка - [Errno 5] Произошла ошибка (401), когда вызов операции |HeadObject: Unauthorized: Произошла ошибка (401) при вызове операции |HeadObject: Unauthorized | |Есть какие-нибудь проблемы? Свяжитесь с нами по адресу dvc.org/support, мы всегда рады помочь!
Эта ошибка является ошибкой аутентификации. Ввели ли вы правильное имя пользователя, имя репозитория и токен доступа в предоставленные мной команды настройки?
Да вы правы! У меня была опечатка. Спасибо за все что ты сделал для меня!
Привет, Дин из команды DagsHub. Трудно узнать на 100%, не имея возможности воспроизвести это локально, но сообщение об ошибке, похоже, предполагает, что имя файла представляет собой пустую строку. Вы успешно загрузили в репозиторий какой-то другой файл? Одна из возможных вещей, которую следует проверить: если на пульте дистанционного управления уже есть папка, для ее обновления может потребоваться
force=True.