Задать вопрос
@LolaHuligang

Как сделать рабочую ссылку на скачивание в php (скачать файл с Яндекс Диска)?

Добрый день, простая задача: 
в приложении на защищенной странице нужно скачать файл с Яндекс Диска по API. 
Яндекс диск выдает для отдельного документа name, path, file. 
Хотелось использовать file, содержимое которого — ссылка-загрузчик.
У меня 2 приложения, одно из них написано на Vue,
и здесь проблем нет:
<a class="btn btn-outline-success" title="Скачать" href="https://downloader.disk.yandex.ru/disk/данные файла">
<svg><!--любая иконка--></svg>
</a>

Нажимаешь на ссылку и  всё скачивается самим браузером.

Второе приложение на php. Генерится тот же самый html:
<a  class="btn btn-default"  href="https://downloader.disk.yandex.ru/disk/данные файла" download>
  <!--любая иконка-->                        
</a>

Добавляла атрибут download для ссылки. Тоже не помогло. Скачивание запрещено.
Происходит прямой переход на ссылку с запретом (403) - а надо, чтобы происходило скачивание.
Интересно, что в Firefox есть возможность скачать 
хотя бы при клике правой кнопкой мыши -> Открыть в новом приватном окне -  всё тоже отлично скачивается.
В других браузерах и это невозможно.
Добывала ссылки на скачивание разными способами: общение с Яндекс Диском через ajax,
напрямую обращалась из php курлом к Api Яндекс. Это не играет роли.
Нужно именно нажать на ссылку и чтобы скачалось, но не получается,
хотя html-код тот же самый, что и в приложении на js (Vue).

Сравнивала метаданные папок, всё как под копирку одинаково:
{
  "_embedded": {
    "sort": "",
    "items": [],
    "limit": 20,
    "offset": 0,
    "path": "disk:/<название>",
    "total": 14
  },
  "name": "<название>",
  "exif": {},
  "resource_id": "<resource_id>",
  "created": "2022-11-15T16:23:36+00:00",
  "modified": "2022-11-15T16:23:36+00:00",
  "path": "disk:/<название>",
  "comment_ids": {
    "private_resource": "<private_resource>",
    "public_resource": "<public_resource>"
  },
  "type": "dir",
  "revision": 1715957968902901
}

Есть ли возможность обойти запрет (403) и как-то скачать по ссылке?
Можно, конечно, скачать файл на свой сервер, но хотелось бы обращаться напрямую
к Яндекс Api через ajax или php.  Все приложения сейчас работают на локалке.
Помогите, плиз, что упускаю?
  • Вопрос задан
  • 201 просмотр
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
@66demon666
Сетевой админ, АТС-админ
Вы же понимаете, что если ссылки получаются идентичными то без разницы чем они сгенерированы? Код которым вы генерируете html ссылку на пыхе в студию
Ответ написан
Комментировать
@Tagire
Добавь в код страницы <meta name="referrer" content="no-referrer">
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 10:44
15000 руб./за проект
22 дек. 2024, в 10:12
10000 руб./за проект
22 дек. 2024, в 09:51
3000 руб./за проект