Имя: Пароль:
1C
1С v8
Отправка файла на яндекс диск из 1С
0 KazSever
 
16.02.17
09:14
Добрый день, нашел в сети такой код для отправки файла на облачный диск яндекса,

        Путь1 = "https://Логин:Пароль@webdav.yandex.ru//Test.rar";;
    Путь2 = "d:\Test.rar";    
    КопироватьФайл(Путь2,Путь1);

но при выполнении выдает ошибку:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(7)}: Ошибка при вызове метода контекста (КопироватьФайл)
    КопироватьФайл(Путь2,Путь1);          
по причине:
Ошибка копирования файлов
по причине:
Ошибка доступа к файлу 'https://vipkst:[email protected]/Test.rar'
по причине:
Ошибка аутентификации при доступе к ресурсу:  https://vipkst:[email protected]//Test.rar

Менял https на http, ошибок не выдает, но ничего не происходит.

Подскажите как исправить данную ошибку?!
1 Heckfy
 
16.02.17
09:25
1С умеет удивлять. Например, чтобы работать с Яндекс.Диском, не требуется никакого шаманства, все из коробки:

Путь1 = "https://login:[email protected]/path/to/file.txt";;
Путь2 = "c:\file.txt";
КопироватьФайл(Путь1, Путь2);
УдалитьФайлы(Путь1);
КопироватьФайл(Путь2, Путь1);
```

Данный код копирует файл из облака Яндекса на локальный диск, удаляет
из облака и заливает обратно.  Вместо `login` и `pass` подставляем
логин и пароль Яндекса.

Это дико удобно, потому что, в отличии от Дропбокса, Яндекс
поддерживает Вебдав. Диск от Яндекса раскачивается до 10 Гб в
полпинка. Таким образом, все прайсы, фотки и прочую статику можно
хранить в диске от Яндекса.
2 Heckfy
 
16.02.17
09:26
(C)
3 KazSever
 
16.02.17
09:34
Да. именно оттуда и брал код
4 Heckfy
 
16.02.17
09:37
Разницу видишь:
У тебя: Путь1 = "https://Логин:Пароль@webdav.yandex.ru//Test.rar";;;
В примере: Путь1 = "https://login:[email protected]/path/to/file.txt";;;
5 DrZombi
 
гуру
16.02.17
09:40
Казалось, а причем тут вообще 1С ? :)
6 KazSever
 
16.02.17
09:41
Я так понимаю вы указываете мне на *path/to/*
7 DrZombi
 
гуру
16.02.17
09:41
Можно было вообще настроить Яндекс диск на папку, а 1С заставить туда копировать и удалять файлы :)
8 KazSever
 
16.02.17
09:42
(7) нет, надо именно отправлять
9 KazSever
 
16.02.17
09:42
(7) т.к. если копировать в папку, то при изменении в папке синхронизируется с облаком, а это не нужно
10 Heckfy
 
16.02.17
09:43
(6) Я таки прошу вас попробовать. :)
(7) Зачем усложнять?
11 DrZombi
 
гуру
16.02.17
09:44
(9) Я ожидал увидеть АПИ обращение к яндекс ресурсу. Код в 30 строк и более :)
12 DrZombi
 
гуру
16.02.17
09:44
+ А когда в пути пишешь логин и пароль, его разве не могут перехватить? ;)
13 KazSever
 
16.02.17
09:45
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(7)}: Ошибка при вызове метода контекста (КопироватьФайл)
    КопироватьФайл(Путь2,Путь1);          
по причине:
Ошибка копирования файлов
по причине:
Ошибка доступа к файлу 'https://vipkst:[email protected]/path/to/Test.rar'
по причине:
Ошибка аутентификации при доступе к ресурсу:  https://vipkst:[email protected]/path/to/Test.rar
14 KazSever
 
16.02.17
09:45
(12) наверно могут, но такой задачи нет
15 Xapac
 
16.02.17
09:46
А два слеша зачем?
16 Heckfy
 
16.02.17
09:46
17 KazSever
 
16.02.17
09:49
(15) а как иначе?
18 Heckfy
 
16.02.17
09:51
(17) Таки есть подозрение, что ресурс (ЯД) не доступен. Политиками закрыт или еще что то....
19 KazSever
 
16.02.17
09:53
похоже на то...
20 KazSever
 
16.02.17
10:03
(16) Помог код



x = Новый ComОбъект("Microsoft.XMLHTTP");
    
    x.Open("PUT","https://webdav.yandex.ru/Test.rar",0);  // третий параметр: 0-синхронный запрос, 1 - асинхронный
    
    x.setRequestHeader("Host", "webdav.yandex.ru");
    
    x.setRequestHeader("Accept", "*/*");
    
    x.setRequestHeader("Authorization", "Basic " + Токен);
    
    
    
    s = Новый ComОбъект("ADODB.Stream");
    
    s.Mode = 3;
    
    s.Type = 1;
    
    s.Open();
    
    s.LoadFromFile("d:\Test.rar");    
    
    x.Send(s.Read());
21 KazSever
 
16.02.17
10:08
всем спасибо, вопрос решен!
22 drcrasher
 
16.02.17
10:16
для тех, кому интересно, то можно поковырять Деньги 2.0. Там есть модули для работы с апи я.диска и дропбокса
23 sikuda
 
16.02.17
10:25
https://youtu.be/jttwS4RA_Ao

"Лучше день потерять, потом за пять минуть долететь."?
http://catalog.mista.ru/public/343316/

"Крылья, крылья - ноги!"
Присоединить Yandex disk как G: или другое?