1

При подключении к sftp по sftp user@serveripaddress я проверял список файлов по ls , но в удаленном каталоге это ничего не показывает, также пробовал cd но нет других путей, по которым я могу перейти.

Я попытался lls , это показывает каталог для моего проекта.

попытался добавить каталог в удаленном режиме, mkdir test но выдает ошибку:

Couldn't create directory: Permission denied

У меня есть файл, найденный в локальном каталоге в /backups/mall/20180524_mallproducts.csv

Итак, теперь я пытаюсь проверить загрузку файла в удаленный каталог с помощью команды, put backups/client/mall/20180522150444_mallproduct.csv /

это даст мне результат:

Uploading backups/client/mall/20180522150444_mallproduct.csv to /20180522150444_mallproduct.csv

remote open("/20180522150444_mallproduct.csv"): Permission denied

поэтому я использую chmod, но это дает мне ошибку, потому что удаленный каталог пуст (нет файлов или папок):

Couldn't setstat on "/": Permission denied

Что может быть не так? как я могу изменить разрешение в sftp?

В docker-compose.yml это мой параметр для sftp,

sftp:
    image: atmoz/sftp
    restart: always
    volumes:
        - ./data/sftp:/home/foo/upload
    ports:
        - "2222:22"
    command: sftp:pass:48

Я ожидал, что папка home при доступе к SFTP, но каталог пуст.

Сначала я обращался к sudo docker-compose exec sftp bash , в нем есть каталог /home/foo/upload .

Но затем я sftp user@serveripaddress , вот где я узнал, что мой код пытается загрузить здесь.

Это код для загрузки через sftp:

<?php

namespace Mall\Infra\Transfer;

use phpseclib\Net\SFTP;

class SftpPutTransfer
{

    /**
     * @var File $name
     */
    public function put(string $remote, string $local)
    {
        $sftp = new SFTP('user', 22);
        if (!$sftp->login('user', 'pass')) {
            var_dump('failed');
        } else {
            var_dump('success');
            var_dump($sftp->rawlist());
            $sftp->put($remote, $local, SFTP::SOURCE_LOCAL_FILE);
        }
    }
}

Я запутался в том, что SFTP подключить и проверить.

1 ответ1

1

Согласно документации https://github.com/atmoz/sftp , вы должны создать хотя бы один подкаталог и использовать его оттуда.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .