Настройка расширенных атрибутов файла с помощью SSH.NET SftpClient

Я пытаюсь использовать атрибут расширенного файла для хранения некоторой информации после того, как я загрузил файл на удаленный компьютер (Ubuntu 16.04 LTS) из Windows с помощью библиотеки Renci SSH.NET SFTP. Но атрибуты не сохраняются?

Вот как я пытаюсь установить расширенные атрибуты

SftpFileAttributes fileAttrs = sftpClient.GetAttributes(remoteFilePath);
IDictionary<string, string> additionalAttrs = new Dictionary<string, string>();
additionalAttrs.Add(new KeyValuePair<string, string>("user.from", "abc"));
additionalAttrs.Add(new KeyValuePair<string, string>("user.to", "xyz"));
fileAttrs =
    new SftpFileAttributes(
        fileAttrs.LastAccessTime, fileAttrs.LastWriteTime, fileAttrs.Size,
        fileAttrs.UserId, fileAttrs.GroupId, 222, additionalAttrs);
sftpClient.SetAttributes(remoteFilePath, fileAttrs);

Итак, вы можете помочь мне, как подойти к этой проблеме? Обратите внимание: удаленный компьютер настроен на разрешение только SFTP-соединения из соображений безопасности.


person Hafte Nigus    schedule 08.02.2018    source источник


Ответы (1)


Вы не можете добавлять случайные расширенные атрибуты, такие как user.from. Вы можете добавлять только те атрибуты, которые явно поддерживает ваш сервер.

Вы не указали, какой SFTP-сервер вы используете. Но поскольку вы подключаетесь к серверу Ubuntu, можно предположить, что это самый распространенный *nix SFTP-сервер, OpenSSH. И OpenSSH не поддерживает никаких расширенных атрибутов. Он тихо игнорирует их все.


Смотрите также эти обсуждения:

И соответствующий раздел спецификации SFTP:

person Martin Prikryl    schedule 12.02.2018