Skip to content

luchefeng/AI_Homework_Submit

Repository files navigation

LinkSubmit · 文件提交平台

本次更新內容(2025.6.20)

1.更改文件夾token爲人工智能实验文件夾 2.更改了前端页面信息

項目版本

版本:1.0.4

本項目是一個基於 Python Flask 與飛書開放平台 API 的文件提交平台,用於實現從本地上傳 Word / PDF 文件,並將其提交至指定的飛書雲文檔文件夾中。該工具旨在簡化多人文件收集流程,應用場景包括作業提交、問卷回收、報告彙總等。 本次版本更新主要針對以下幾個方面進行了優化與改進:

  • 將項目部署到render上,提供了線上提交的功能

已實現功能

  • 調用飛書開放平台雲文檔 API,爲用戶上傳提交的文件提供存儲空間
  • 使用 Flask 框架構建前後端結構,實現表單上傳功能
  • 支持 .doc, .docx, .pdf 格式文件的上傳
  • 對單個文件大小進行限制(不得超過 20MB,且不得為空文件)
  • 將文件成功上傳至預設的飛書文件夾
  • 完成待改進項目1,2,3

技術架構與實現邏輯

  1. 使用 Flask 框架構建本地應用,設計 HTML 前端與後端 API 接口
  2. 使用 requests 調用飛書開發者平台 API,包括:
    • 獲取 tenant_access_token
    • 創建文件上傳任務並獲取上傳地址
    • 完成文件上傳與提交
  3. 文件最終自動儲存至開發者預設的飛書文件夾中

文件格式與限制

  • 支持文件格式:.doc, .docx, .pdf
  • 單個文件大小上限:20MB
  • 不允許空文件(大小為 0)

功能規劃與待改進項目

  1. 安全性

    • 使用 .env 管理敏感信息(如 app_id, app_secret, folder_token 等)
    • 建立 .gitignore 避免提交環境配置與敏感憑證
    • 進度:
      • 已完成 .env 文件的建立與配置
      • 已完成 .gitignore 的建立與配置
  2. 項目結構優化

    • 分離前端模板(templates/)與後端業務邏輯
    • 進度:
      • 已完成前端模板的分離與重構
  3. 前端體驗優化

    • 增加上傳須知(文件命名規則、截止時間提示等)
    • 美化頁面布局,提供明確交互提示(成功 / 失敗)
    • 上傳後的前端頁面以更人性化的方式呈現,現在還是JSON的格式呈現的
    • 進度:
      • 已完成上傳須知的添加與頁面布局的優化
      • 已完成交互提示的增強
  4. 後端功能擴展

    • 自動按一定格式重命名文件,並禁止重複提交同名文件
      • 暫不考慮該功能
    • 記錄文件token,文件提交時間與文件名稱,形成基本日誌系統
      • 已完成
    • 可選設置截止時間,逾期提交可提示或禁止
      • 已完成
  5. 用戶功能拓展

    • 前端提供查詢接口,允許用戶查看並刪除自己之前的提交,提升可控性與體驗
      • 已完成
  6. 部署

    • 考慮使用 Railway / Vercel / Render 等部署平臺進行線上部署
    • 提供固定網址供用戶提交文件

問題記錄

1. Git 分支錯誤處理

錯誤信息: error: 路徑規格 'main' 未符合任何 git 已知檔案

原因:遠端倉庫存在 main 分支,但本地尚未建立對應分支
解決方案: git fetch origin main git checkout main

2. 飛書 API 權限問題

問題描述:API 調用失敗,提示「當前身份沒有文件夾的編輯權限」

解決方案: 確保應用已獲取正確的 API 權限(詳見飛書開放平臺的開發文檔)

使用正確的 tenant_access_token 認證並發送請求

在飛書文件夾中為應用添加協作者權限

聲明

本項目作為課業輔助用途而設計,僅用於學習與技術實踐。不建議直接應用於處理機密或敏感數據,正式部署前需進行安全審查與測試。

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published