Как передать файл через яндекс диск
Перейти к содержимому

Как передать файл через яндекс диск

  • автор:

Как передать файл через яндекс диск

Яндекс.Диск

Версия для

Вопросы и ответы по «Яндекс.Диск»

Вопрос и ответы были вам полезны?

Да

Нет

Попробуйте также:

Похожие вопросы :

  • Проблема с папкой яндекс диска в разделе мой компьютер. Нет синхронизации. Что. (Ответов: 10)
  • На кнопку паузы нельзя нажимать, загрузка начинается заново? Почему архив не. (Ответов: 1)
  • Как в моем Яндекс диске могли оказаться фото другого человека? (Ответов: 1)
  • Как загрузить большой файл на яндекс диск? (Ответов: 1)
  • Размещение файлов на облачном и локальном дисках (Ответов: 1)
  • Как загрузить файл на Яндекс Диск? (Ответов: 1)
  • Как запаролить Яндекс Диск? (Ответов: 6)
  • Как загрузить видео на Яндекс Диск? (Ответов: 1)
  • Как быстро перейти на файл, синхронизированный и сохранённый у себя на компьютере. (Ответов: 0)

Разрезать и залить видео на Яндекс.диск — бесплатно

Предлагается рассмотреть программу на python, которая позволит в рамках бесплатного тарифа «Яндекс.диска» нарезать и заливать видеофайлы, размеры которых превышают 1 Гб (требование тарифа), получать ссылки на них. Никакой магии — только api «yandex.диска» и немного python.

Предисловие. Небольшое

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

Какое-то время с этим можно было мириться, так как для «старых» аккаунтов вроде как были небольшие послабления — еще можно было залить файл с превышением размера, только если он по габаритам помещался в оставшееся место на облаке. Но потом и эту «лавочку прикрыли» — только не более 1Гб.

В воздухе повисла пауза и необходимость как-то заливать файлы либо вообще забыть про ресурс.

Но, как говорится, «старый друг лучше новых двух», поэтому пришлось заглянуть в api «яндекс. диска», а, заодно, поискать быстрый splitter видео, чтобы экономить целых 199 р. в месяц на «старом друге».

К программе нарезки видео

Идея программы проста: дробим видео по 1Гб, заливаем на «яндекс.диск» (далее по тексту — «Я»), делаем ссылки на части видео публичными (доступ по ссылке), получаем ссылки на видео в txt.

В поисках проекта по корректному и быстрому разрезанию видео нагитхабилось несколько репозиториев. Но не все они оказались рабочими, а из рабочих — быстрыми и результативными.

В итоге, самым результативной оказалась программа (назовем ее split.py), использующая ffmpeg:

import subprocess,os class Split: def __init__(self,maxSize,path): '''Size of the chunks in MB and path to save the pieces''' self.maxSize = int((maxSize-10) * 1024) self.path = path def splitVid(self,file): '''File to split''' video_size = os.path.getsize(file) video_size = video_size / 1024 video_duration = subprocess.run(["ffprobe", "-v", "error", "-show_entries", "format=duration", "-of", "default=noprint_wrappers=1:nokey=1", file], stdout=subprocess.PIPE).stdout.decode('utf-8') pieces_duration = round(float(video_duration) / (int(video_size / self.maxSize) + 1)) subprocess.run(["ffmpeg", "-i", file, "-c", "copy", "-f", "segment", "-segment_time", str(pieces_duration), "-loglevel", "quiet", "-reset_timestamps", "1", f"part%02d_vid.mp4"])

Вызывать ее будем из другого скрипта (example.py):

from split import Split splitter = Split(1000,"./") splitter.splitVid("video.mkv")

где 1000 — это размер в Мб, который превышать нельзя, а video.mkv — видео для нарезки.

Вроде бы все в части нарезки видео. Но, оказалось, с Я не все так просто.

Общение с api «яндекс.диска»

Для того, чтобы можно было пользоваться ресурсом, необходим токен, благо он бесплатный.
Получить его просто, пройдя ряд шагов, не вызывающих сложностей по созданию приложения на «яндексе». На получении токена останавливаться не будем, статей на эту тему достаточно.

Перейдем непосредственно к программе.

В основу положена библиотека из репозитория — yadisk.

Устанавливается вспомогательный модуль как обычно —

pip install yadisk

Есть также ее async сестра — yadisk-async.

С ее использованием при общении с Я тоже не все безоблачно, но об этом позднее.

Однако в пределах одного взятого файла (видеофрагмента большого размера) async проигрывает по скорости загрузки, проверено экспериментально.

В репо yadisk есть простые команды для общения с Я по api.

Мы перейдем сразу к рекурсивной загрузке всех файлов из папки на нашем локальном диске.

 import posixpath import os import yadisk #windows version from time import sleep y = yadisk.YaDisk(token="токен") # Создаёт новую папку "/test-dir" print(y.mkdir("/test-dir")) to_dir = "/test-dir" from_dir = "to_upload" #проверка свободного места #print(y.get_disk_info().FIELDS) fields=y.get_disk_info().FIELDS free_space=(fields['total_space']-fields['used_space'])/1048576 trash=fields['trash_size']/1048576 print(f"свободное место на yandex disk: Мб", ) print(f"корзина занимает: Мб", ) def recursive_upload(y, from_dir, to_dir): for root, dirs, files in os.walk(from_dir): p = root.split(from_dir)[1].strip(os.path.sep) dir_path = posixpath.join(to_dir, p) #print(dir_path) #try: #y.mkdir(dir_path) #except yadisk.exceptions.PathExistsError as e: #print(e) #pass for file in files: file_path = posixpath.join(dir_path, file) #print(file_path) #p_sys = p.replace("/", os.path.sep) in_path = os.path.join(from_dir, file) print(in_path) try: y.upload(in_path, file_path) except yadisk.exceptions.PathExistsError as e: print(e) #pass recursive_upload(y, from_dir, to_dir) print("залито") #print(list(y.listdir("/test-dir"))) for f in list(y.listdir(to_dir)): y.publish(f'/') # make file public with open ("links.txt", "a") as l: for f in list(y.listdir("/test-dir")): print(f.FIELDS["public_url"]) #public url l.write(f.FIELDS["public_url"]+'\n') print('готово') 

Программа для os windows. Разберем код.

Из локальной папки to_upload заливаются в папку test-dir на Я все ранее нарезанные видеофрагменты.

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

Далее, с помощью

 y.publish(f'/документации. 

Выход из сложившейся ситуации простой — заливать файлы, удалив у них расширения. То есть вместо «video.mp4», закачивать «video».

Поэтому, в программу рекурсивной загрузки файлов добавим одну строку, которая будет удалять расширение файла перед загрузкой:

os.rename(f'/',f'/') 

Блок кода примет вид:

for file in files: os.rename(f'/',f'/') file_path = posixpath.join(dir_path, file)

Ремарка по async версию программы

Переименование файлов перед загрузкой на ресурс Я не спасает программу по async загрузке от вылета. Это происходит только при заливе крупных файлов и, вероятно, из-за timeout — issue.

Тем не менее, версию программы с async можно заставить работать, увеличив timeout.

Например, рабочий код (протестирован на видео фрагментах) может выглядеть вот так:

 async def main(): print("token valid: ",await y.check_token()) print("заливаю. ") async with aiofiles.open("ghosted_1", "rb") as f: await y.upload(f, "/test-dir/ghosted_1",timeout=100) print("залил") if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(main()) loop.close()

Послесловие

Оглядываясь назад, можно задать вопрос — стоят ли 199 р. таких трудов? Все равно ведь залитые видеофрагменты дробятся по 1Гб и при просмотре с ресурса Я будут немного вызывать неудобства при просмотре. Однако, этот вопрос — на обсуждение. Здесь лишь приведен вариант решения проблемы, с которой столкнулся автор.

  • яндекс.диск
  • обработка видео
  • хранение файлов
  • Python
  • Хранение данных
  • Облачные сервисы

Передача файлов с яндекс диска другому пользователю

Яндекс диск как передать файлы другому пользователю

Яндекс диск без сомнения является оним из самых популярных облачных хранилищ в рунете. С его помощью можно легко получать доступ к своим файлам, загруженным в папку Яндекс диск, из любой точки мира и с любого устройства, на котором есть интернет. Но далеко не каждый пользователь данного сервиса знает как передать тот или иной файл другому пользователю в случае появления такой необходимости. Как это сделать мы и расскажем в данной статье.

Получение ссылки на файл и ее отправка другому пользователю

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

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

передача файла через яндекс диск другому пользователю

Выделение передаваемого файла на сайте яндекс диска

Также перейти на сайт яндекс диска можно через приложение. Если оно у вас установлено, то нужно нажать по его иконке в трее возле часов правой кнопкой мыши и в открывшемся окне выбрать “Открыть сайт”.

передача файла через яндекс диск другому пользователю

Открытие сайта яндекс диска через приложение

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

Яндекс диск как передать файлы другому пользователю

Получение ссылки на передаваемый файл

Человек, перейдя по ней, получит доступ к скачиванию файла, что по сути и означает передачу файла.

Яндекс диск как передать файлы другому пользователю

Переход по отправленной ссылке и скачивание файла

Лучшая благодарность автору - репост к себе на страничку:

как поделиться ссылкой на Яндекс. диск с другим человеком.

как поделиться ссылкой на Яндекс. диск с другим человеком.

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

Kak поделиться ссылкой

Первый способ поделиться файлом или папкой — это создать для него ссылку прямого доступа. Чтобы сделать это быстро и легко, вам просто нужно выполнить следующие несколько шагов:

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

  • Последний шаг-выбрать один из вариантов обмена ссылками из списка: скопировать ссылку, отправить ее по электронной почте или разместить в социальных сетях. Всегда можно получить ссылку на QR-код, просто выбрав соответствующий пункт меню.

Второй способ поделиться файлом или папкой — это использовать мобильное приложение, следуя процедуре для Android и iOS, и компьютерную программу, следуя процедуре для Windows и macOS. Вы можете просмотреть все опубликованные файлы и папки в любое время на вкладке общий доступ, расположенной на левой панели, или просто перейдя на вкладку Ссылки. Вы можете видеть, что все общие файлы и папки помечены черным квадратным значком, который содержит цепочку. Если вы решили поделиться ссылкой на файл или папку с другим Пользователям Яндексa. дисков, они всегда могут просмотреть и сохранить ваш файл или папку на своем Яндексе. Диск. Внимание! Вы не можете загрузить общую папку на свой компьютер в виде архива, если она содержит более 500 файлов или занимает более 5 ГБ памяти.

Как долго продлятся эти ссылки?

Когда Вы делитесь файлом с кем-то через ссылку, эта ссылка на общий файл будет доступна до тех пор, пока вы снова не сделаете файл частным. Вы все еще можете создать другую ссылку на файл, если передумаете и решите снова поделиться файлом или папкой. Если у вас уже есть доступ к общему файлу и Яндексу. диск Веб-приложение или мобильное приложение отправляет вам другую общедоступную ссылку на него, это будет та же ссылка, которая была сгенерирована при первом совместном использовании файла. Таким образом, в основном ссылка на общий файл длится до тех пор, пока владелец не захочет!

Какими файлами и папками я могу поделиться?

Вы можете обмениваться файлами и папками из Яндекса. Диск корневой каталог диска и всех созданных вами папок. Чтобы поделиться вложением электронной почты, вам нужно скопировать его из папки почтовые вложения, которая находится на вкладке архив в левой панели, в нужную Яндекс. Диск папку на диске. Внимание! Вы не можете обмениваться файлами и папками, которые находятся внутри общей папки, если вы не являетесь владельцем общей папки или если у вас есть доступ только для просмотра.

Как создавать новые документы на Яндексе. Диск

Как создавать новые документы на Яндексе. Диск
В этой статье мы рассмотрим, как создавать новые документы на Яндексе. Диск Вы когда-нибудь мечтали о создании нового документа прямо из Яндекса? Главная страница диска? Ну это не сон, это реальность, потому что такая опция уже есть в Яндексе. Диск,…

Как увеличить хранилища на Яндексе. Диск

Как увеличить хранилища на Яндексе. Диск
Яндекс. Disk-это облачный сервис хранения данных, предлагаемый Яндексом, который позволяет хранить файлы в Интернете. К сожалению, свободное место для хранения, предлагаемое этой услугой, имеет предел, но не волнуйтесь, потому что мы увидим, что делать, если вы достигнете этого предела. Продолжайте…

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

Как поделиться файлом через Яндекс.Диск.
Прежде всего мы должны объяснить, что такое Яндекс.Диск, eсли вы используете Яндекс, вы сможете пользоваться Яндекс. Диском. Яндекс.Диск — это сервис для хранения, редактирования и синхронизации файлов, предлагаемый Яндексa. Это один из самых популярных облачных сервисoв в мире, если у Вас…

Различия между Google Диск и Яндекс Диск.

Различия между Google Диск и Яндекс Диск.
Google Диск — это сервис для хранения, редактирования и синхронизации файлов, предлагаемый компанией Google. Это самый популярный облачный сервис в мире, если у Вас уже есть аккаунт Google, вы автоматически получаете аккаунт Google диск. Это означает, что, если вы являетесь пользователем…

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

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