mirror of
https://github.com/tgdrive/teldrive.git
synced 2024-11-10 09:02:52 +08:00
fix file creation
This commit is contained in:
parent
bc7b50f4da
commit
ca77be389d
6 changed files with 28 additions and 24 deletions
|
@ -24,7 +24,7 @@ RUN make pre-ui && make ui
|
|||
|
||||
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build \
|
||||
-ldflags='-w -s -extldflags "-static"' -a \
|
||||
-o /app/teldrive .
|
||||
-o /app/teldrive cmd/teldrive/main.go
|
||||
|
||||
|
||||
FROM --platform=${TARGETPLATFORM:-linux/amd64} busybox
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"crypto/md5"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
)
|
||||
|
||||
func FromBytes(data []byte) string {
|
||||
|
@ -17,16 +16,6 @@ func FromString(str string) string {
|
|||
return FromBytes(data)
|
||||
}
|
||||
|
||||
func FromFilePath(filePath string) (string, error) {
|
||||
f, err := os.Open(filePath)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
return FromReader(f)
|
||||
}
|
||||
|
||||
func FromReader(src io.Reader) (string, error) {
|
||||
h := md5.New()
|
||||
if _, err := io.Copy(h, src); err != nil {
|
||||
|
|
|
@ -5,21 +5,25 @@ import (
|
|||
"github.com/divyam234/teldrive/pkg/schemas"
|
||||
)
|
||||
|
||||
func ToFileOut(file *models.File) schemas.FileOut {
|
||||
func ToFileOut(file models.File) schemas.FileOut {
|
||||
var size int64
|
||||
if file.Size != nil {
|
||||
size = *file.Size
|
||||
}
|
||||
return schemas.FileOut{
|
||||
ID: file.ID,
|
||||
Name: file.Name,
|
||||
Type: file.Type,
|
||||
MimeType: file.MimeType,
|
||||
Path: file.Path,
|
||||
Size: *file.Size,
|
||||
Size: size,
|
||||
Starred: file.Starred,
|
||||
ParentID: file.ParentID,
|
||||
UpdatedAt: file.UpdatedAt,
|
||||
}
|
||||
}
|
||||
|
||||
func ToFileOutFull(file *models.File) *schemas.FileOutFull {
|
||||
func ToFileOutFull(file models.File) *schemas.FileOutFull {
|
||||
parts := []schemas.Part{}
|
||||
for _, part := range *file.Parts {
|
||||
parts = append(parts, schemas.Part{
|
||||
|
|
|
@ -65,7 +65,7 @@ type UpdateFile struct {
|
|||
Name string `json:"name,omitempty"`
|
||||
Type string `json:"type,omitempty"`
|
||||
Path string `json:"path,omitempty"`
|
||||
Starred bool `json:"starred,omitempty"`
|
||||
Starred *bool `json:"starred,omitempty"`
|
||||
ParentID string `json:"parentId,omitempty"`
|
||||
UpdatedAt time.Time `json:"updatedAt,omitempty"`
|
||||
}
|
||||
|
|
|
@ -79,10 +79,21 @@ func (fs *FileService) CreateFile(c *gin.Context) (*schemas.FileOut, *types.AppE
|
|||
}
|
||||
}
|
||||
fileDB.ChannelID = utils.Int64Pointer(channelId)
|
||||
}
|
||||
fileDB.MimeType = fileIn.MimeType
|
||||
parts := models.Parts{}
|
||||
for _, part := range fileIn.Parts {
|
||||
parts = append(parts, models.Part{
|
||||
ID: part.ID,
|
||||
})
|
||||
|
||||
}
|
||||
fileDB.Parts = &parts
|
||||
fileDB.Starred = false
|
||||
fileDB.Size = &fileIn.Size
|
||||
}
|
||||
fileDB.Name = fileIn.Name
|
||||
fileDB.Type = fileIn.Type
|
||||
fileDB.UserID = userId
|
||||
fileDB.Starred = false
|
||||
fileDB.Status = "active"
|
||||
|
||||
if err := fs.Db.Create(&fileDB).Error; err != nil {
|
||||
|
@ -94,7 +105,7 @@ func (fs *FileService) CreateFile(c *gin.Context) (*schemas.FileOut, *types.AppE
|
|||
|
||||
}
|
||||
|
||||
res := mapper.ToFileOut(&fileDB)
|
||||
res := mapper.ToFileOut(fileDB)
|
||||
|
||||
return &res, nil
|
||||
}
|
||||
|
@ -125,7 +136,7 @@ func (fs *FileService) UpdateFile(c *gin.Context) (*schemas.FileOut, *types.AppE
|
|||
return nil, &types.AppError{Error: errors.New("file not updated"), Code: http.StatusInternalServerError}
|
||||
}
|
||||
|
||||
file := mapper.ToFileOut(&files[0])
|
||||
file := mapper.ToFileOut(files[0])
|
||||
|
||||
key := fmt.Sprintf("files:%s", fileID)
|
||||
|
||||
|
@ -147,7 +158,7 @@ func (fs *FileService) GetFileByID(c *gin.Context) (*schemas.FileOutFull, error)
|
|||
return nil, errors.New("file not found")
|
||||
}
|
||||
|
||||
return mapper.ToFileOutFull(&file[0]), nil
|
||||
return mapper.ToFileOutFull(file[0]), nil
|
||||
}
|
||||
|
||||
func (fs *FileService) ListFiles(c *gin.Context) (*schemas.FileResponse, *types.AppError) {
|
||||
|
@ -278,7 +289,7 @@ func (fs *FileService) MakeDirectory(c *gin.Context) (*schemas.FileOut, *types.A
|
|||
Code: http.StatusInternalServerError}
|
||||
}
|
||||
|
||||
file := mapper.ToFileOut(&files[0])
|
||||
file := mapper.ToFileOut(files[0])
|
||||
|
||||
return &file, nil
|
||||
|
||||
|
@ -300,7 +311,7 @@ func (fs *FileService) CopyFile(c *gin.Context) (*schemas.FileOut, *types.AppErr
|
|||
|
||||
fs.Db.Model(&models.File{}).Where("id = ?", payload.ID).Find(&res)
|
||||
|
||||
file := mapper.ToFileOutFull(&res[0])
|
||||
file := mapper.ToFileOutFull(res[0])
|
||||
|
||||
newIds := models.Parts{}
|
||||
|
||||
|
@ -381,7 +392,7 @@ func (fs *FileService) CopyFile(c *gin.Context) (*schemas.FileOut, *types.AppErr
|
|||
|
||||
}
|
||||
|
||||
out := mapper.ToFileOut(&dbFile)
|
||||
out := mapper.ToFileOut(dbFile)
|
||||
|
||||
return &out, nil
|
||||
|
||||
|
|
Loading…
Reference in a new issue