From d1ca65461c0edd99a9b8ef866d71604e007bf7bf Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Sun, 15 Mar 2020 09:56:50 +0800 Subject: [PATCH] Fix: incorrect capacity unit for OSS traffic limit --- pkg/filesystem/driver/oss/handler_test.go | 4 ++-- pkg/filesystem/driver/oss/handller.go | 3 +++ service/admin/policy.go | 5 +++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/filesystem/driver/oss/handler_test.go b/pkg/filesystem/driver/oss/handler_test.go index 085c698..811fe6a 100644 --- a/pkg/filesystem/driver/oss/handler_test.go +++ b/pkg/filesystem/driver/oss/handler_test.go @@ -117,7 +117,7 @@ func TestDriver_Source(t *testing.T) { // 限速 + 下载 { ctx := context.WithValue(context.Background(), fsctx.FileModelCtx, model.File{Name: "123.txt"}) - res, err := handler.Source(ctx, "/123", url.URL{}, 10, true, 819201) + res, err := handler.Source(ctx, "/123", url.URL{}, 10, true, 102401) asserts.NoError(err) resURL, err := url.Parse(res) asserts.NoError(err) @@ -125,7 +125,7 @@ func TestDriver_Source(t *testing.T) { asserts.NotEmpty(query.Get("Signature")) asserts.NotEmpty(query.Get("Expires")) asserts.Equal("ak", query.Get("OSSAccessKeyId")) - asserts.EqualValues("819201", query.Get("x-oss-traffic-limit")) + asserts.EqualValues("819208", query.Get("x-oss-traffic-limit")) asserts.NotEmpty(query.Get("response-content-disposition")) } diff --git a/pkg/filesystem/driver/oss/handller.go b/pkg/filesystem/driver/oss/handller.go index 47610ea..80a85af 100644 --- a/pkg/filesystem/driver/oss/handller.go +++ b/pkg/filesystem/driver/oss/handller.go @@ -248,6 +248,9 @@ func (handler Driver) Source( signOptions = append(signOptions, oss.ResponseContentDisposition("attachment; filename=\""+url.PathEscape(fileName)+"\"")) } if speed > 0 { + // Byte 转换为 bit + speed *= 8 + // OSS对速度值有范围限制 if speed < 819200 { speed = 819200 diff --git a/service/admin/policy.go b/service/admin/policy.go index 4c293bc..fff7005 100644 --- a/service/admin/policy.go +++ b/service/admin/policy.go @@ -54,6 +54,11 @@ type PolicyService struct { // Delete 删除存储策略 func (service *PolicyService) Delete() serializer.Response { + // 禁止删除默认策略 + if service.ID == 1 { + return serializer.Err(serializer.CodeNoPermissionErr, "默认存储策略无法删除", nil) + } + policy, err := model.GetPolicyByID(service.ID) if err != nil { return serializer.Err(serializer.CodeNotFound, "存储策略不存在", err)