fix file upload

This commit is contained in:
2025-05-15 12:40:27 +02:00
parent 16d25f034e
commit 79df1243e6
3 changed files with 8 additions and 4 deletions

View File

@@ -74,7 +74,7 @@ func GetUploadingFilesOlderThan(time time.Time) ([]model.UploadingFile, error) {
return files, nil return files, nil
} }
func CreateFile(filename string, description string, resourceID uint, storageID *uint, storageKey string, redirectUrl string, size int64) (*model.File, error) { func CreateFile(filename string, description string, resourceID uint, storageID *uint, storageKey string, redirectUrl string, size int64, userID uint) (*model.File, error) {
if storageID == nil && redirectUrl == "" { if storageID == nil && redirectUrl == "" {
return nil, errors.New("storageID and redirectUrl cannot be both empty") return nil, errors.New("storageID and redirectUrl cannot be both empty")
} }
@@ -87,6 +87,7 @@ func CreateFile(filename string, description string, resourceID uint, storageID
RedirectUrl: redirectUrl, RedirectUrl: redirectUrl,
StorageKey: storageKey, StorageKey: storageKey,
Size: size, Size: size,
UserID: userID,
} }
if err := db.Create(f).Error; err != nil { if err := db.Create(f).Error; err != nil {
return nil, err return nil, err

View File

@@ -15,7 +15,9 @@ func SetStatistic(key string, value int64) error {
func GetStatistic(key string) int64 { func GetStatistic(key string) int64 {
statistic := &model.Statistic{} statistic := &model.Statistic{}
if err := db.Where("key = ?", key).First(statistic).Error; err != nil { if err := db.Where(&model.Statistic{
Key: key,
}).First(statistic).Error; err != nil {
return 0 return 0
} }
return statistic.Value return statistic.Value

View File

@@ -232,7 +232,7 @@ func FinishUploadingFile(uid uint, fid uint) (*model.FileView, error) {
return nil, model.NewInternalServerError("failed to finish uploading file. please re-upload") return nil, model.NewInternalServerError("failed to finish uploading file. please re-upload")
} }
dbFile, err := dao.CreateFile(uploadingFile.Filename, uploadingFile.Description, uploadingFile.TargetResourceID, &uploadingFile.TargetStorageID, "", "", uploadingFile.TotalSize) dbFile, err := dao.CreateFile(uploadingFile.Filename, uploadingFile.Description, uploadingFile.TargetResourceID, &uploadingFile.TargetStorageID, "", "", uploadingFile.TotalSize, uid)
if err != nil { if err != nil {
log.Error("failed to create file in db: ", err) log.Error("failed to create file in db: ", err)
_ = os.Remove(resultFilePath) _ = os.Remove(resultFilePath)
@@ -305,7 +305,7 @@ func CreateRedirectFile(uid uint, filename string, description string, resourceI
return nil, model.NewUnAuthorizedError("user cannot upload file") return nil, model.NewUnAuthorizedError("user cannot upload file")
} }
file, err := dao.CreateFile(filename, description, resourceID, nil, "", redirectUrl, 0) file, err := dao.CreateFile(filename, description, resourceID, nil, "", redirectUrl, 0, uid)
if err != nil { if err != nil {
log.Error("failed to create file in db: ", err) log.Error("failed to create file in db: ", err)
return nil, model.NewInternalServerError("failed to create file in db") return nil, model.NewInternalServerError("failed to create file in db")
@@ -397,6 +397,7 @@ func DownloadFile(ip, fid, cfToken string) (string, string, error) {
log.Info("cf token verification failed") log.Info("cf token verification failed")
return "", "", model.NewRequestError("cf token verification failed") return "", "", model.NewRequestError("cf token verification failed")
} }
log.Info("File download request from: " + ip)
downloads, _ := ipDownloads.Load(ip) downloads, _ := ipDownloads.Load(ip)
if downloads == nil { if downloads == nil {
ipDownloads.Store(ip, 1) ipDownloads.Store(ip, 1)