Сохранить объект по ссылке яндекс где посмотреть
Перейти к содержимому

Сохранить объект по ссылке яндекс где посмотреть

  • автор:

Как правильно использовать прямую ссылку с Яндекс.диска?

Всё вроде бы хорошо но, когда я пытаюсь перейти по ссылке, получаю в ответ статус 403:

5f23e22018656067756651.png

При этом, если просто вбить полученную ссылку в браузере, он без проблем даёт скачать файл, и после этого ссылка начинает работать как надо.
Вопрос, можно ли как-то обойти ручные манипуляции с браузером и сразу скачать файл?

  • Вопрос задан более трёх лет назад
  • 18055 просмотров

1 комментарий

Простой 1 комментарий

CrazyKing

CrazyKing @CrazyKing Автор вопроса

5f23e9ef9b8ac693864206.png

Ещё нашел кое-что интересное, если открыть полученную ссылку в браузере (руками), и посмотреть в мониторинг сети (F12), то можно увидеть такую картину:

В ответе есть «location» и там ссылка на файл, вот если использовать ссылку из данного заголовка, то всё хорошо скачивается.
Но данная ссылка стухнет через пару часов.
Было бы неплохо её как-то вытаскивать автоматом.

Сохранить объект по ссылке яндекс где посмотреть

1. Файл видео или картинки нужно передать нам, но т.к. размер файла слишком велик, для передачи его по электронной почте, надо залить его на файлообменник.

Пожалуйста, используйте указанный ниже файлообменник, загрузка с других ресурсов вашей конфигурации нашими специалистами может затянуться на десятки часов, т.к. скорость загрузки занижается с целью монетизации.

Пожалуйста, не архивируйте файл, это не эффективно для данного формата. Рекомендуется переименовать файл, добавив версию конфигурации и название вашей организации в имя файла.

2. На сайте Яндекс.Диска https://disk.yandex.ru нужно нажать кнопку «Загрузить» и выбрать только что выгруженный из 1с файл

3. Дождитесь окончания процедуры загрузки файла на сервер

4. После окончания загрузки выберете в списке загруженных файлов файл конфигурации и в нижней части сайта включите ему доступ владельцам ссылки.

5. Сервис сгенерирует уникальную ссылку и ее необходимо отправить нам на по электронной почте на адрес info@2740000.ru обязательно укажите название плательщика и номер заказа.

Как скачать файл из публичной папки Яндекс.Диск

Есть приложение с фронтом на Vue и с бэком на Firebase и есть публичная папка на Яндекс Диске, с задачей вывода папок и файлов справился с помощью REST API. Но со скачиванием файлов есть проблемы. Делаю запрос на https://cloud-api.yandex.net/v1/disk/public/resources получаю папки и файлы, у файлов есть поле file со ссылкой на скачивание, но при попытке скачать получаю 403.

Отслеживать
Баха Волков
задан 30 мая 2022 в 10:48
Баха Волков Баха Волков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

тебе не даст это сделать политика конфиденциальности Яндекса скорее всего

Отслеживать
ответ дан 30 мая 2022 в 11:04
Anonimus stupid man Anonimus stupid man
62 5 5 бронзовых знаков

Рабочий код выглядит так:

import requests base_url = 'https://cloud-api.yandex.net/v1/disk/public/resources/download?' link = 'https://disk.yandex.ru/d/SvcMXspUAGSb6Q' # Сюда вписываете вашу ссылку # Получаем загрузочную ссылку final_url = base_url + 'public_key=' + link response = requests.get(final_url) download_url = response.json()['href'] # Загружаем файл и сохраняем его download_response = requests.get(download_url) with open('downloaded_file.txt', 'wb') as f: # Здесь укажите нужный путь к файлу f.write(download_response.content)``` 

Как программно скачать файл с Яндекс.Диск?

Добрый день.
Есть файлы на яндекс диске с публичными ссылками, например, https://disk.yandex.ru/public/?hash=Zn9rQik51OUzcW.
Как программно скачать файл, например на php?

  • Вопрос задан более трёх лет назад
  • 26719 просмотров

2 комментария

Оценить 2 комментария

Salavat

Салават @Salavat Автор вопроса
Точнее: есть ссылка на файл яндекс диск, нужно получить прямую ссылку на скачивание.

Salavat

Салават @Salavat Автор вопроса
учетная запись мне не принадлежит
Решения вопроса 0
Ответы на вопрос 6

nrr

вот пример реализации на php:

function get_stat( $url, $headers ) < $handle = curl_init(); curl_setopt( $handle, CURLOPT_URL, $url ); curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers ); curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true ); $response = curl_exec( $handle ); $code = curl_getinfo( $handle, CURLINFO_HTTP_CODE ); return array( "code" =>$code, "response" => $response ); > $url_yandex_disk = "https://yadi.sk/i/byMUqoSLiw3Ki"; $result = get_stat( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url_yandex_disk ), array() ); if( $result["code"] == 200 ) < $result["response"] = json_decode( $result["response"], true ); echo 'Скачать'; > else

А здесь публикация и получение списка своих файлов на Яндекс диске:
https://getfile.dokpub.com/yandex/publish/

Для тех кто желает генерировать постоянно обновляемые ссылки передаваемые ,например в GET параметре, можно сделать так:

$url_yandex_disk = $_GET["ya_url"]; $result = get_stat( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url_yandex_disk ), array() ); if( $result["code"] == 200 )

а вот на Питоне:

import requests import pprint import urllib.parse targetUrl = "https://yadi.sk/i/03bE933n3PqpG2" url = "https://cloud-api.yandex.net/v1/disk/public/resources?public_key=" + urllib.parse.quote(targetUrl, safe="") responseData = requests.get(url) if responseData.headers["content-type"] in ["application/json; charset=utf-8", "application/json"]: print(pprint.pformat(responseData.json())) else: print(responseData)

В некоторых случаях могут возникать ошибки.
Ниже связанные вопросы с текущим ответом:
Как правильно использовать прямую ссылку с Яндекс.диска?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *