| 
    
            
         
         | 
    
  | 
Скачать картинку с яндекс диска на пк Ут 10 | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    21:21 
 | 
         
        Всем доброго дня. Есть ссылка на картинку яндекса. Вот пример https://yadi.sk/d/jGbwG3PGpt3am/LM0103C.jpg
 
        Нужно скачать её на пк и желательно добавить в номенклатуру. Делал так: 1 способ) SSL = Новый ЗащищенноеСоединениеOpenSSL(); СерверПриемник = "yadi.sk"; Яндекс = новый HTTPСоединение("yadi.sk",,,,,,SSL); HTTPЗапрос = Новый HTTPЗапрос(LM0103C.jpg); Ответ = Яндекс.Получить(HTTPЗапрос,"D:\Картинки\LM0103C.jpg); 2 Способ) КопироватьФайл (https://yadi.sk/d/jGbwG3PGpt3am/LM0103C.jpg, "D:\Картинки\LM0103C.jpg"); МояКартинка = Новый Картинка("D:\Картинки\LM0103C.jpg"); НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент(); ВыбранноеИзображение = Новый Картинка("D:\Картинки\LM0103C.jpg", Ложь); НовыйОбъект.Наименование = НашаПозиция.Код; НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение; НовыйОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных); НовыйОбъект.Объект = НашаПозиция.Ссылка; НовыйОбъект.Записать(); // НашаПозиция.ОсновноеИзображение = НовыйОбъект; Вообще, при сохранении картинки на диск она весит 1 Кб и её не возможно открыть. Как скачать картнку с яндекса зная ссылку на изображение или сразу загрузить её в товар?  | 
|||
| 
    1
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    21:41 
 | 
         
        ну и вот еще
 
        SSL = Новый ЗащищенноеСоединениеOpenSSL(); Соединение = Новый HTTPСоединение("yadi.sk",,,,,,SSL); Запрос = HTTPЗапрос("/d/jGbwG3PGpt3am/LM0103C.jpg"); Ответ = Соединение.Получить(Запрос); ДвоичныеДанныеКартинки = Ответ.ПолучитьТелоКакДвоичныеДанные(); ДвоичныеДанныеКартинки.Записать("D:\Картинки\LM0103C.jpg");  | 
|||
| 
    2
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    21:43 
 | 
         
        в 1 способе 4-ую строку переделал на это:
 
        HTTPЗапрос("/d/jGbwG3PGpt3am/LM0103C.jpg"); тоже не помогло.  | 
|||
| 
    3
    
        Ненавижу 1С    
     гуру 
    13.05.21 
            ✎
    21:43 
 | 
||||
| 
    4
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    21:46 
 | 
         
        (3) второй сопосб. Я так и делал. Только не в корень D, а в папку.     
         | 
|||
| 
    5
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    21:46 
 | 
         
        (3) В итоге файл 1 Кб нечитаемый.     
         | 
|||
| 
    6
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    21:50 
 | 
         
        (3) если нужна какая то особая ссылка на скачивание, то поставщик такие ссылки не предоставляет. Только такие https://yadi.sk/d/jGbwG3PGpt3am/LM0103C.jpg     
         | 
|||
| 
    7
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    21:52 
 | 
         
        (3) попробуйте сами мою картинку скачать этой строчкой кода. У мнея любыми способами картинка весит 1 кб и не читается.     
         | 
|||
| 
    8
    
        Недопустимый    
     13.05.21 
            ✎
    21:58 
 | 
         
        (0) в браузере картинка открывается?     
         | 
|||
| 
    9
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    21:59 
 | 
         
        (8) конечно     
         | 
|||
| 
    10
    
        pechkin    
     13.05.21 
            ✎
    22:02 
 | 
         
        Получить хтмл страницу, найти там картинку и вот ее уже скачать     
         | 
|||
| 
    11
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    22:03 
 | 
         
        (10) ??????????????     
         | 
|||
| 
    12
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    22:05 
 | 
         
        (10) Огонь!  Только как программно теперь html страницу получить?     
         | 
|||
| 
    13
    
        pechkin    
     13.05.21 
            ✎
    22:07 
 | 
         
        Также как и картинку получал, только на выходе будет не жпг файл, а хтмл.потом его парсить и тд     
         | 
|||
| 
    14
    
        pechkin    
     13.05.21 
            ✎
    22:08 
 | 
         
        Главное чтобы оно не скриптом подгружалось     
         | 
|||
| 
    15
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    22:09 
 | 
         
        (13) не понятно, к сожалению     
         | 
|||
| 
    16
    
        pechkin    
     13.05.21 
            ✎
    22:10 
 | 
         
        У тебя в (0) весь код уже есть     
         | 
|||
| 
    17
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    22:11 
 | 
         
        (16) дак какой из. Я просто не понимаю, как получить ссылку html программно. Руками просто , прогарммно без понятия как.     
         | 
|||
| 
    18
    
        pechkin    
     13.05.21 
            ✎
    22:13 
 | 
         
        Ты сам файл уже получил? 
        Потом чтение хтмл и купи xpath  | 
|||
| 
    19
    
        pechkin    
     13.05.21 
            ✎
    22:13 
 | 
         
        *кури     
         | 
|||
| 
    20
    
        mikecool    
     13.05.21 
            ✎
    22:13 
 | 
         
        может там редирект?     
         | 
|||
| 
    21
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    22:14 
 | 
         
        (18) Я не получал никакого файла. Что за xpath. А простых способов нет?     
         | 
|||
| 
    22
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    22:21 
 | 
         
        (19) Есть ссылка на картинку -  https://yadi.sk/d/jGbwG3PGpt3am/LM0103C.jpg как из неё получить вот это - https://downloader.disk.yandex.ru/preview/9eb7cbbe26efb54273422def97d04ccfe3254d7865f6f83366e54d0bea0033ad/609daf6a/PqtPOqtnw8uxtrqjtPEhqCX_y5jUBYr4bDaKTn1-6N2pJEBcJ2UEvJHg969x9a5KzibUue56cqxzbCXWKKwICg%3D%3D?uid=0&filename=LM0103C.jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&owner_uid=0&tknv=v2&size=1903x912     
         | 
|||
| 
    23
    
        Ненавижу 1С    
     гуру 
    13.05.21 
            ✎
    22:30 
 | 
         
        (5) (6) (7) у меня ок. Вы его недоскаченным читаете     
         | 
|||
| 
    24
    
        Builder    
     13.05.21 
            ✎
    22:51 
 | 
         
        (22) С Я-диска по короткой ссылке ничего не скачать просто так.
 
        Видел сервис, который переделывает короткие ссылки в полноценные для скачивания.  | 
|||
| 
    25
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    22:53 
 | 
         
        (23) Как его доскачать?     
         | 
|||
| 
    26
    
        pechkin    
     13.05.21 
            ✎
    22:55 
 | 
         
        (21) простых способов нет     
         | 
|||
| 
    27
    
        pechkin    
     13.05.21 
            ✎
    22:56 
 | 
         
        Короткая ссылка это не картинка, а хтмл страница     
         | 
|||
| 
    28
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    22:56 
 | 
         
        (23) т.е вы прям такой код используете и у вас все ок? 
 
        Путь1 = "https://yadi.sk/d/jGbwG3PGpt3am/LM0103C.jpg"; Путь2 = "D:\LM0103C.jpg"; КопироватьФайл(Путь1, Путь2);  | 
|||
| 
    29
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    22:56 
 | 
         
        (27) ок, а примеры есть какие нибудь? В слепую ведь не возможно понять, что делать.     
         | 
|||
| 
    30
    
        pechkin    
     13.05.21 
            ✎
    22:58 
 | 
         
        Делай (28) только путь2 = "файл.html" 
        Это шаг 1  | 
|||
| 
    31
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    23:00 
 | 
         
        (30) Ага, пробовал. Пробовал вручную его кстати открыть, показывает ссылку внутри "https://yadi.sk/d/jGbwG3PGpt3am/LM0103C.jpg"     
         | 
|||
| 
    32
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    23:02 
 | 
         
        (30) Такое вот внутри      "Found. Redirecting to https://disk.yandex.ru/d/jGbwG3PGpt3am/LM0103C.jpg"     
         | 
|||
| 
    33
    
        pechkin    
     13.05.21 
            ✎
    23:03 
 | 
         
        Что значит показывает ссылку?     
         | 
|||
| 
    34
    
        pechkin    
     13.05.21 
            ✎
    23:04 
 | 
         
        (32) попробуй тоже самое уже с этой ссылкой     
         | 
|||
| 
    35
    
        pechkin    
     13.05.21 
            ✎
    23:04 
 | 
         
        У этой ссылки путь тот же только домен другой, полный     
         | 
|||
| 
    36
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    23:09 
 | 
         
        (35) ДА Вижу, теперь xml     
         | 
|||
| 
    37
    
        timurhv    
     13.05.21 
            ✎
    23:10 
 | 
         
        (32) В https://yadi.sk/d/jGbwG3PGpt3am/LM0103C.jpg = html страничка, а не картинка.
 
        В html есть ссылка на картинку, но не на оригинальную. Чтобы скачать оригинальную картинку необходимо использовать API Yandex.Cloud https://yandex.ru/dev/disk/api/reference/public.html  | 
|||
| 
    38
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    23:15 
 | 
         
        (37) жесть. Тут неделю разбираться XD     
         | 
|||
| 
    39
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    23:16 
 | 
         
        (37) да оригинальная и не нужна. Только ссылку на копию там не могу найти     
         | 
|||
| 
    40
    
        timurhv    
     13.05.21 
            ✎
    23:27 
 | 
         
        (38) HTTP запрос GET:
 
        https://cloud-api.yandex.net/v1/disk/public/resources/download?public_key=https%3A%2F%2Fyadi.sk%2Fd%2FjGbwG3PGpt3am&path=%2F Где параметры: public_key = https://yadi.sk/d/jGbwG3PGpt3am path = /LM0103C.jpg В ответ приходит статус 200, JSON: { "href": "https://downloader.disk.yandex.ru/zip/5a856e24a1dd7a54a9953927bb7f03c3d914cdf5dc3f8bee48d01f5d0e241edd/609d8ada/OStKOHd3N3ZQK3JBQ0Q2elh3S0x1cEwzSWg0b09UbGo5TmhPR3FINkhRdz06Lw==?uid=0&filename=Фото%20LEMARK.zip&disposition=attachment&hash=9%2BJ8ww7vP%2BrACD6zXwKLupL3Ih4oOTlj9NhOGqH6HQw%3D%3A/&limit=0&owner_uid=101991125&tknv=v2", "method": "GET", "templated": false } Вот и ваша ссылка на оригинальный файл.  | 
|||
| 
    41
    
        timurhv    
     13.05.21 
            ✎
    23:28 
 | 
         
        (40) Вот корректная ссылка, не там скопировал
 
        https://cloud-api.yandex.net/v1/disk/public/resources/download?public_key=https://yadi.sk/d/jGbwG3PGpt3am&path=/LM0103C.jpg  | 
|||
| 
    42
    
        timurhv    
     13.05.21 
            ✎
    23:35 
 | 
         
        По ссылке в (40) кстати можете архив получить в zip, если укажете path=/
 
        А потом скопом загружать в номенклатуру.  | 
|||
| 
    43
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    23:42 
 | 
         
        (42) Сделал так. Пишет - Файл не найден. 
 
        SSL = Новый ЗащищенноеСоединениеOpenSSL(); Яндекс = новый HTTPСоединение("cloud-api.yandex.net",,,,,,SSL); //КаталогСохранения = ВыбратьКаталогСохранения(); HTTPЗапрос = Новый HTTPЗапрос("/v1/disk/public/resources/download?public_key=https://yadi.sk/d/jGbwG3PGpt3am=/LM0103C.jpg"); //HTTPЗапрос = Новый HTTPЗапрос("/v1/disk/public/resources/download?public_key=https://yadi.sk/d/7VkxupioQEjcNQ&path=/Test3.xlsx"); Ответ = Яндекс.Получить(HTTPЗапрос); Если Ответ.КодСостояния = 200 тогда ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку()); СсылкаНаСкачиваниеФайла = ПрочитатьJSON(ЧтениеJSON); Если ЗначениеЗаполнено(СсылкаНаСкачиваниеФайла.href) тогда КопироватьФайл(СсылкаНаСкачиваниеФайла.href,"D:\123456.jpg"); КонецЕсли; ИначеЕсли Ответ.КодСостояния = 404 тогда Сообщить("Файл не найден"); Иначе Сообщить("Что-то пошло не так, Код состояния = " + Ответ.КодСостояния); КонецЕсли;  | 
|||
| 
    44
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    23:45 
 | 
         
        (42) забыл &path.
 
        Поставил. Скачалось 0 Кб.  | 
|||
| 
    45
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    23:50 
 | 
         
        (42) В итоге сделал так. Но все равно пустой файл качает. Где то уже читал в инете, что такая фигня постоянно с яндекс диском. Либо я что то не понял.
 
        SSL = Новый ЗащищенноеСоединениеOpenSSL(); Яндекс = новый HTTPСоединение("cloud-api.yandex.net",,,,,,SSL); HTTPЗапрос = Новый HTTPЗапрос("/v1/disk/public/resources/download?public_key=https://yadi.sk/d/jGbwG3PGpt3am&path=/LM0103C.jpg"); Ответ = Яндекс.Получить(HTTPЗапрос); Если Ответ.КодСостояния = 200 тогда ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку()); СсылкаНаСкачиваниеФайла = ПрочитатьJSON(ЧтениеJSON); Если ЗначениеЗаполнено(СсылкаНаСкачиваниеФайла.href) тогда КопироватьФайл(СсылкаНаСкачиваниеФайла.href,"D:\123456.jpg"); КонецЕсли; ИначеЕсли Ответ.КодСостояния = 404 тогда Сообщить("Файл не найден"); Иначе Сообщить("Что-то пошло не так, Код состояния = " + Ответ.КодСостояния); КонецЕсли;  | 
|||
| 
    46
    
        MAPATNK2    
     naïve 
    13.05.21 
            ✎
    23:56 
 | 
         
        Победа. Для скачивания картинки с яндекс диска по публичной ссылке. Используйте пример кода: 
 
        SSL = Новый ЗащищенноеСоединениеOpenSSL(); Яндекс = новый HTTPСоединение("cloud-api.yandex.net",,,,,,SSL); КаталогСохранения = "C:\ttt"; HTTPЗапрос = Новый HTTPЗапрос("/v1/disk/public/resources/download?public_key=https://yadi.sk/d/jGbwG3PGpt3am&path=/LM0103C.jpg"); Ответ = Яндекс.Получить(HTTPЗапрос); Если Ответ.КодСостояния = 200 тогда ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку()); СсылкаНаСкачиваниеФайла = ПрочитатьJSON(ЧтениеJSON); Если ЗначениеЗаполнено(СсылкаНаСкачиваниеФайла.href) тогда //КопироватьФайл(СсылкаНаСкачиваниеФайла.href,КаталогСохранения+"\1.txt"); Соединение = Новый HTTPСоединение(СтрЗаменить(СсылкаНаСкачиваниеФайла.href,"https://",""),,,,,, Новый ЗащищенноеСоединениеOpenSSL() ); Запрос = Новый HTTPЗапрос(""); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 302 Тогда КопироватьФайл(Результат.Заголовки.Получить("Location"),"D:\123456.jpg"); КонецЕсли; КонецЕсли; ИначеЕсли Ответ.КодСостояния = 404 тогда Сообщить("Файл не найден"); Возврат; Иначе Сообщить("Что-то пошло не так, Код состояния = " + Ответ.КодСостояния); Возврат; КонецЕсли;  | 
|||
| 
    47
    
        timurhv    
     14.05.21 
            ✎
    00:32 
 | 
         
        (46) Наверное, вместо редиректа с кодом 302 может и 200 вернуться. Тогда надо будет использовать
 
        ДД = Результат.ПолучитьДвоичныеДанные(); ДД.Записать("D:\123456.jpg");  | 
|||
| 
    48
    
        SiAl-chel    
     14.05.21 
            ✎
    07:18 
 | 
         
        (0) Настоящая ссылка картинку вот такая:
 
        https://downloader.disk.yandex.ru/preview/39035cb0d4199bf7966de9120355d8d37f0a44b9f2707ff2d6e8999d3f196989/609e31e5/PqtPOqtnw8uxtrqjtPEhqCX_y5jUBYr4bDaKTn1-6N2pJEBcJ2UEvJHg969x9a5KzibUue56cqxzbCXWKKwICg%3D%3D?uid=0&filename=LM0103C.jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&owner_uid=0&tknv=v2&size=1652x1016  | 
|||
| 
    49
    
        sikuda    
     14.05.21 
            ✎
    09:56 
 | 
         
        (0) А теперь самое главное - Картинка имеет формат webp и в форме 1С не покажется ;)     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |