|
Скачать картинку с яндекс диска на пк Ут 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С не покажется ;)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |