Skip to content

Commit 0871844

Browse files
committed
fix
1 parent 2b72717 commit 0871844

File tree

2 files changed

+18
-31
lines changed

2 files changed

+18
-31
lines changed

services/packages/packages.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"errors"
1010
"fmt"
1111
"io"
12+
"net/http"
1213
"net/url"
1314
"strings"
1415

@@ -626,14 +627,12 @@ func OpenBlobForDownload(ctx context.Context, pf *packages_model.PackageFile, pb
626627
s, err = cs.OpenBlob(key)
627628
}
628629

629-
if err == nil {
630-
if pf.IsLead {
631-
if err := packages_model.IncrementDownloadCounter(ctx, pf.VersionID); err != nil {
632-
log.Error("Error incrementing download counter: %v", err)
633-
}
630+
if err == nil && pf.IsLead && method == http.MethodGet {
631+
if err := packages_model.IncrementDownloadCounter(ctx, pf.VersionID); err != nil {
632+
log.Error("Error incrementing download counter: %v", err)
634633
}
635634
}
636-
return s, u, pf, err
635+
return s, u, pf, nil
637636
}
638637

639638
// RemoveAllPackages for User

tests/integration/api_packages_generic_test.go

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -141,37 +141,25 @@ func TestPackageGeneric(t *testing.T) {
141141
t.Run("ServeDirect", func(t *testing.T) {
142142
defer tests.PrintCurrentTest(t)()
143143

144-
if setting.Packages.Storage.Type != setting.MinioStorageType && setting.Packages.Storage.Type != setting.AzureBlobStorageType {
144+
if setting.Packages.Storage.Type != setting.MinioStorageType {
145+
defer test.MockVariableValue(&setting.Packages.Storage.MinioConfig.ServeDirect, true)()
146+
} else if setting.Packages.Storage.Type != setting.AzureBlobStorageType {
147+
defer test.MockVariableValue(&setting.Packages.Storage.AzureBlobConfig.ServeDirect, true)()
148+
} else {
145149
t.Skip("Test skipped for non-Minio-storage and non-AzureBlob-storage.")
146-
return
147150
}
148151

149-
if setting.Packages.Storage.Type == setting.MinioStorageType {
150-
if !setting.Packages.Storage.MinioConfig.ServeDirect {
151-
old := setting.Packages.Storage.MinioConfig.ServeDirect
152-
defer func() {
153-
setting.Packages.Storage.MinioConfig.ServeDirect = old
154-
}()
155-
156-
setting.Packages.Storage.MinioConfig.ServeDirect = true
157-
}
158-
} else if setting.Packages.Storage.Type == setting.AzureBlobStorageType {
159-
if !setting.Packages.Storage.AzureBlobConfig.ServeDirect {
160-
old := setting.Packages.Storage.AzureBlobConfig.ServeDirect
161-
defer func() {
162-
setting.Packages.Storage.AzureBlobConfig.ServeDirect = old
163-
}()
164-
165-
setting.Packages.Storage.AzureBlobConfig.ServeDirect = true
166-
}
167-
}
168-
169-
req := NewRequest(t, "GET", url+"/"+filename)
170-
resp := MakeRequest(t, req, http.StatusSeeOther)
152+
req = NewRequest(t, "HEAD", url+"/"+filename)
153+
resp = MakeRequest(t, req, http.StatusSeeOther)
154+
location := resp.Header().Get("Location")
155+
assert.NotEmpty(t, location)
156+
checkDownloadCount(2)
171157

158+
req = NewRequest(t, "GET", url+"/"+filename)
159+
resp = MakeRequest(t, req, http.StatusSeeOther)
172160
checkDownloadCount(3)
173161

174-
location := resp.Header().Get("Location")
162+
location = resp.Header().Get("Location")
175163
assert.NotEmpty(t, location)
176164

177165
resp2, err := (&http.Client{}).Get(location)

0 commit comments

Comments
 (0)