mirror of
https://github.com/wgh136/nysoure.git
synced 2025-09-27 20:27:23 +00:00
Implement s3 storage.
Use uuid as file id.
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
package dao
|
||||
|
||||
import "nysoure/server/model"
|
||||
import (
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"nysoure/server/model"
|
||||
)
|
||||
|
||||
func CreateStorage(s model.Storage) (model.Storage, error) {
|
||||
err := db.Model(&s).Create(&s).Error
|
||||
@@ -22,3 +26,14 @@ func GetStorage(id uint) (model.Storage, error) {
|
||||
err := db.Model(&model.Storage{}).Where("id = ?", id).First(&storage).Error
|
||||
return storage, err
|
||||
}
|
||||
|
||||
func AddStorageUsage(id uint, offset int64) error {
|
||||
return db.Transaction(func(tx *gorm.DB) error {
|
||||
var storage model.Storage
|
||||
err := tx.Clauses(clause.Locking{Strength: clause.LockingStrengthUpdate}).Model(&model.Storage{}).Where("id = ?", id).First(&storage).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return tx.Model(&model.Storage{}).Where("id = ?", id).Update("current_size", storage.CurrentSize+offset).Error
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user