powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / mega.nz, c++ sdk. Как загрузить файл по паблик - ссылке?
4 сообщений из 4, страница 1 из 1
mega.nz, c++ sdk. Как загрузить файл по паблик - ссылке?
    #40066048
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MS VS-2019 (CE)
Мега: mega.nz
SDK: Mega SDK
Задача: по публичной ссылке "mega" на файл загрузить его в указанное место, без указания логина/пароля.

Обычно: создаю экземпляр объекта mega::MegaApi, к нему в пару экземпляр своего наследника от mega::MegaListener, связываю, вызываю логин и занимаюсь своими делами. Все делается в методах слушателя в отдельной нити.

С паролем/логином не интересно. Во-первых, небезопасно, во-вторых, большие объемы метаданных (почти сто тысяч файлов), директория долго грузится, долго расшифровывается... А по прямым ссылкам должно быть быстро (так пишут в документации).

Вопрос: как загрузить файл по вот этой (например) http://mega.nz/file/iTwigAiI#wECWvRlPApAAqffltKtRMeGtXw-gCVKgV379AAFzMTY ссылке?
Спасибо.
...
Рейтинг: 0 / 0
mega.nz, c++ sdk. Как загрузить файл по паблик - ссылке?
    #40066175
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался.
1. Создаем объект mega::MegaApi

Код: plaintext
1.
  mega::MegaApi* megaApi = new mg::MegaApi(тра-ля-ля);


3. Обращаемся к методу mega::MegaApi.getPublicNode с параметром url публичной ссылки, например:

Код: plaintext
1.
 	megaApi->getPublicNode(R"(http://mega.nz/file/iTwigAiI#wECWvRlPApAAqffltKtRMeGtXw-gCVKgV379AAFzMTY)");



2. Нужно определить свой класс - слушатель, наследник mega::MegaListener

Код: plaintext
1.
class c_my_download_by_public_link_listener : public mega::MegaListener{


в котором в перекрытом методе
Код: plaintext
1.
	virtual void onRequestFinish(mega::MegaApi* api, mega::MegaRequest* request, mega::MegaError* e) {


- особым образом обработать запрос типа TYPE_GET_PUBLIC_NODE: из запроса получить мега-нод, который уже загружаем обычным образом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
		switch (request->getType()) {
...
		case mega::MegaRequest::TYPE_GET_PUBLIC_NODE: {
			auto pn = request->getPublicMegaNode(); 
			api->startDownload(pn, куда-грузить);
			break;
		}


2.5 Между шагами 1 и 3 к mega::MegaApi добавляем вышеописанный объект - слушатель.

Код: plaintext
1.
2.
	c_my_download_by_public_link_listener listener(параметры);
	megaApi->addListener(&listener);
...
Рейтинг: 0 / 0
mega.nz, c++ sdk. Как загрузить файл по паблик - ссылке?
    #40066176
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мало ли. Вдруг кому пригодится. Сервис mega.nz весьма популярен. :)
...
Рейтинг: 0 / 0
mega.nz, c++ sdk. Как загрузить файл по паблик - ссылке?
    #40095311
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ъъъъъ
Задача: по публичной ссылке "mega" на файл загрузить его в указанное место, без указания логина/пароля.

https://gpailler.github.io/MegaApiClient/articles/samples.html
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / mega.nz, c++ sdk. Как загрузить файл по паблик - ссылке?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]