mirror of
https://github.com/halejohn/Cloudreve.git
synced 2026-01-26 09:34:57 +08:00
Enable overwrite for non-first chunk uploading request
This commit is contained in:
@@ -70,7 +70,6 @@ type S3Callback struct {
|
||||
// GetBody 返回回调正文
|
||||
func (service UpyunCallbackService) GetBody(session *serializer.UploadSession) serializer.UploadCallback {
|
||||
res := serializer.UploadCallback{
|
||||
Name: session.Name,
|
||||
SourceName: service.SourceName,
|
||||
Size: service.Size,
|
||||
}
|
||||
@@ -84,7 +83,6 @@ func (service UpyunCallbackService) GetBody(session *serializer.UploadSession) s
|
||||
// GetBody 返回回调正文
|
||||
func (service UploadCallbackService) GetBody(session *serializer.UploadSession) serializer.UploadCallback {
|
||||
return serializer.UploadCallback{
|
||||
Name: service.Name,
|
||||
SourceName: service.SourceName,
|
||||
PicInfo: service.PicInfo,
|
||||
Size: service.Size,
|
||||
@@ -98,7 +96,6 @@ func (service OneDriveCallback) GetBody(session *serializer.UploadSession) seria
|
||||
picInfo = fmt.Sprintf("%d,%d", service.Meta.Image.Width, service.Meta.Image.Height)
|
||||
}
|
||||
return serializer.UploadCallback{
|
||||
Name: session.Name,
|
||||
SourceName: session.SavePath,
|
||||
PicInfo: picInfo,
|
||||
Size: session.Size,
|
||||
@@ -108,7 +105,6 @@ func (service OneDriveCallback) GetBody(session *serializer.UploadSession) seria
|
||||
// GetBody 返回回调正文
|
||||
func (service COSCallback) GetBody(session *serializer.UploadSession) serializer.UploadCallback {
|
||||
return serializer.UploadCallback{
|
||||
Name: session.Name,
|
||||
SourceName: session.SavePath,
|
||||
PicInfo: "",
|
||||
Size: session.Size,
|
||||
@@ -118,7 +114,6 @@ func (service COSCallback) GetBody(session *serializer.UploadSession) serializer
|
||||
// GetBody 返回回调正文
|
||||
func (service S3Callback) GetBody(session *serializer.UploadSession) serializer.UploadCallback {
|
||||
return serializer.UploadCallback{
|
||||
Name: session.Name,
|
||||
SourceName: session.SavePath,
|
||||
PicInfo: "",
|
||||
Size: session.Size,
|
||||
|
||||
@@ -120,7 +120,7 @@ func (service *UploadService) LocalUpload(ctx context.Context, c *gin.Context) s
|
||||
util.Log().Info("尝试上传覆盖分片[%d] Start=%d", service.Index, actualSizeStart)
|
||||
}
|
||||
|
||||
return processChunkUpload(ctx, c, fs, &uploadSession, service.Index, file, fsctx.Append|fsctx.Overwrite)
|
||||
return processChunkUpload(ctx, c, fs, &uploadSession, service.Index, file, fsctx.Append)
|
||||
}
|
||||
|
||||
// SlaveUpload 处理从机文件分片上传
|
||||
@@ -165,6 +165,11 @@ func processChunkUpload(ctx context.Context, c *gin.Context, fs *filesystem.File
|
||||
)
|
||||
}
|
||||
|
||||
// 非首个分片时需要允许覆盖
|
||||
if index > 0 {
|
||||
mode |= fsctx.Overwrite
|
||||
}
|
||||
|
||||
fileData := fsctx.FileStream{
|
||||
MIMEType: c.Request.Header.Get("Content-Type"),
|
||||
File: c.Request.Body,
|
||||
@@ -193,7 +198,7 @@ func processChunkUpload(ctx context.Context, c *gin.Context, fs *filesystem.File
|
||||
}
|
||||
} else {
|
||||
if isLastChunk {
|
||||
fs.Use("AfterUpload", filesystem.SlaveAfterUpload)
|
||||
fs.Use("AfterUpload", filesystem.SlaveAfterUpload(session))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user