Загрузка файлов на Яндекс диск и рассылка по email Python

judex

Гуру форума
Регистрация
23 Дек 2006
Сообщения
242
Реакции
77
Всем привет!
Помогите пожалуйста решить проблему.
Решил сделать не большой скрипт на python, который загружает файлы из директории и делает рассылку по почте.
Загрузку файлов я сделал без проблем и отправку по почте сделать не проблема, загвоздка встала в том, чтобы после загрузки файлов в директорию на яндекс диске получить публичную ссылку.
#если в коде есть ошибки поправьте :) только начинаю изучать этот язык.
Сам код:
Код:
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import sys
import os
import yadisk
import posixpath
from tkinter.filedialog import askdirectory
from tkinter import *


root = Tk()
root.update()
root.folder = askdirectory(initialdir = "/",title = "Выбор Папки")
root.destroy()
root.mainloop()

#Архивация

#/Архивация

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)

         try:
             y.mkdir(dir_path)
         except yadisk.exceptions.PathExistsError:
             pass

         for file in files:
             file_path = posixpath.join(dir_path, file)
             p_sys = p.replace("/", os.path.sep)
             in_path = os.path.join(from_dir, p_sys, file)
             try:
                 y.upload(in_path, file_path)
             except yadisk.exceptions.PathExistsError:
                 pass

y = yadisk.YaDisk(token="ТОКЕН")
print(y.check_token())
#root.filename =  filedialog.askopenfilename(initialdir = "/",title = "Select file")
to_dir = "/backup/test/"
from_dir = (root.folder)
print(u"Загрузка началась")
recursive_upload(y, from_dir, to_dir)
print(u"Загрузка закончилась")

'''
#Рассылка писем
toaddr = '***@gmail.com' #адреса через запятую
me = '***@gmail.com'
you = 'To: ' + toaddr
server = 'smtp.gmail.com' # Сервер
port = 465 # Порты
user_name = '***@gmail.com' # Отправитель
user_passwd = '******' # Пароль отправителя
# Формируем заголовок письма
msg = MIMEMultipart('mixed')
msg['Subject'] = u'Заголовок письма'
msg['From'] = me
msg['To'] = toaddr
# Формируем письмо
part = MIMEText(u'Содержимое письма', 'Plain email')
msg.attach(part)
# Подключение
s = smtplib.SMTP(server, port)
s.ehlo()
s.starttls()
s.ehlo()
# Авторизация
s.login(user_name, user_passwd)
# Отправка письма
s.sendmail(me, toaddr, msg.as_string())
s.quit()
'''
 
Код:
import requests
url = 'https://yadi.sk/d/Vm5hptkELcsrQQ'
r = requests.get('https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key='f'{url}').json()
download_link = r["href"]
print(download_link)
 
Назад
Сверху