#python #sftp #snakemake #pysftp
#python #sftp #snakemake #pysftp
Вопрос:
Я могу сделать
sftp server.com <<< """put bar.txt bar.txt"""
используя мою конфигурацию ~/.shh/config
, и я пытаюсь включить то же самое в свой Snakefile
. Следуя документам, мне удается подключиться, но не передавать файл:
from snakemake.remote.SFTP import RemoteProvider
SFTP = RemoteProvider(mkdir_remote=True, username='my.email@something.com', private_key='~/.ssh/id_rsa')
rule all:
input:
"bar.txt"
output:
SFTP.remote('server.com/bar.txt')
shell:
"cp {input} {output}"
не передает файл. Я что-то упустил? Как выполняется команда sftp сверху с использованием pysftp?
Заранее спасибо!
Комментарии:
1. Ваша команда оболочки говорит
cd
вместоcp
.2. да, извините. Эта ошибка, должно быть, произошла, когда я заменил пример общими именами… Я изменил его, спасибо, что заметили. Работает ли этот код для вас с сервером, к которому у вас есть доступ ?!
3. Получаете ли вы вообще какой-либо вывод, например, сообщение об ошибке? Если да, пожалуйста, укажите это в своем вопросе.
4. Как первые две строки кода соотносятся с остальной частью текста в вашем разделе кода?
5. Я только что заметил: «Как выполняется команда sftp сверху с использованием pysftp?» Таким образом, у вас нет проблем с вашим кодом. Скорее, вы просите нас закодировать это для вас. Здесь это работает не так. Напишите что-нибудь, что, по вашему мнению, должно работать, а затем предоставьте свой код и задайте вопросы о том, почему он не работает. Если вы еще не знаете, как писать код, найдите учебные пособия или книги, чтобы узнать, что вам нужно знать. Мы здесь не учим программированию.
Ответ №1:
итак, просто для подтверждения: вышеуказанное должно работать так, как написано. Я столкнулся с таймаутом, поскольку SFTP
использует параллельные pysftp
/ paramiko
соединения, которые ограничены в моей инфраструктуре.
(Пробный запуск snakemake также пытается получить доступ к файлам на ftp-сервере, а затем я был заблокирован на 5 минут, так как я открыл слишком много подключений)