Skip to content

Commit f86c7c8

Browse files
authored
feat(cloudreve_v4): add ks3 support (#1828)
Signed-off-by: MadDogOwner <xiaoran@xrgzs.top>
1 parent 5db2172 commit f86c7c8

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

drivers/cloudreve_v4/driver.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,9 @@ func (d *CloudreveV4) Put(ctx context.Context, dstDir model.Obj, file model.File
299299
case "onedrive":
300300
err = d.upOneDrive(ctx, file, u, up)
301301
case "s3":
302-
err = d.upS3(ctx, file, u, up)
302+
err = d.upS3(ctx, file, u, up, "s3")
303+
case "ks3":
304+
err = d.upS3(ctx, file, u, up, "ks3")
303305
default:
304306
return errs.NotImplement
305307
}

drivers/cloudreve_v4/util.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,7 @@ func (d *CloudreveV4) upOneDrive(ctx context.Context, file model.FileStreamer, u
529529
}, nil)
530530
}
531531

532-
func (d *CloudreveV4) upS3(ctx context.Context, file model.FileStreamer, u FileUploadResp, up driver.UpdateProgress) error {
532+
func (d *CloudreveV4) upS3(ctx context.Context, file model.FileStreamer, u FileUploadResp, up driver.UpdateProgress, s3Type string) error {
533533
DEFAULT := int64(u.ChunkSize)
534534
ss, err := stream.NewStreamSectionReader(file, int(DEFAULT), &up)
535535
if err != nil {
@@ -560,6 +560,9 @@ func (d *CloudreveV4) upS3(ctx context.Context, file model.FileStreamer, u FileU
560560
}
561561
req.ContentLength = byteSize
562562
req.Header.Set("User-Agent", d.getUA())
563+
if s3Type == "ks3" {
564+
req.Header.Set("Content-Type", "application/octet-stream")
565+
}
563566
res, err := base.HttpClient.Do(req)
564567
if err != nil {
565568
return err
@@ -609,7 +612,11 @@ func (d *CloudreveV4) upS3(ctx context.Context, file model.FileStreamer, u FileU
609612
if err != nil {
610613
return err
611614
}
612-
req.Header.Set("Content-Type", "application/xml")
615+
if s3Type == "ks3" {
616+
req.Header.Set("Content-Type", "application/octet-stream")
617+
} else {
618+
req.Header.Set("Content-Type", "application/xml")
619+
}
613620
req.Header.Set("User-Agent", d.getUA())
614621
res, err := base.HttpClient.Do(req)
615622
if err != nil {
@@ -622,7 +629,5 @@ func (d *CloudreveV4) upS3(ctx context.Context, file model.FileStreamer, u FileU
622629
}
623630

624631
// 上传成功发送回调请求
625-
return d.request(http.MethodGet, "/callback/s3/"+u.SessionID+"/"+u.CallbackSecret, func(req *resty.Request) {
626-
req.SetBody("{}")
627-
}, nil)
632+
return d.request(http.MethodGet, "/callback/"+s3Type+"/"+u.SessionID+"/"+u.CallbackSecret, nil, nil)
628633
}

0 commit comments

Comments
 (0)