Bladeren bron

feat: 自动获取访问url

SongZihuan 2 jaren geleden
bovenliggende
commit
495153f1d6
2 gewijzigde bestanden met toevoegingen van 12 en 5 verwijderingen
  1. 2 1
      app/auth.py
  2. 10 4
      app/oss.py

+ 2 - 1
app/auth.py

@@ -10,6 +10,7 @@ from wtforms import (EmailField,
                      SubmitField,
                      ValidationError)
 from wtforms.validators import DataRequired, Length, Regexp, EqualTo
+from urllib.parse import urljoin
 
 import app
 from object.user import User
@@ -180,7 +181,7 @@ def register_page():
     form = RegisterForm()
     if form.validate_on_submit():
         token = User.creat_token(form.email.data, form.passwd.data)
-        register_url = conf["URL_NAME"] + url_for("auth.confirm_page", token=token)
+        register_url = urljoin(request.host_url, url_for("auth.confirm_page", token=token))
         hblog: app.Hblog = current_app
         send_msg("注册确认", hblog.mail, form.email.data, "register", register_url=register_url)
         flash("注册提交成功, 请进入邮箱点击确认注册链接")

+ 10 - 4
app/oss.py

@@ -3,8 +3,9 @@ from flask_login import login_required
 from flask_wtf import FlaskForm
 from wtforms import FileField, StringField, SubmitField
 from wtforms.validators import DataRequired, Length
+from urllib.parse import urljoin
+import oss2
 
-import configure
 from aliyun import aliyun
 import app
 
@@ -53,9 +54,14 @@ def upload_page():
         if path.startswith('/'):
             path = path[1:]
         path += file.filename
-        aliyun.upload_file(path, file)
-        app.HBlogFlask.print_sys_opt_success_log(f"Upload file {path}")
-        flash(f"文件 {file.filename} 已上传: {configure.conf['URL_NAME'] + url_for('oss.get_page', name=path)}")
+        try:
+            aliyun.upload_file(path, file)
+        except oss2.exceptions.OssError:
+            app.HBlogFlask.print_sys_opt_success_log(f"Upload file {path} fail")
+            flash(f"文件 {file.filename} 上传失败")
+        else:
+            app.HBlogFlask.print_sys_opt_success_log(f"Upload file {path}")
+            flash(f"文件 {file.filename} 已上传: {urljoin(request.host_url, url_for('oss.get_page', name=path))}")
         return redirect(url_for("oss.upload_page"))
     app.HBlogFlask.print_load_page_log(f"OSS upload")
     return render_template("oss/upload.html", UploadForm=form)