mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-06 22:30:56 +03:00
s3, azblob: check upper limit for part size
This commit is contained in:
@@ -409,6 +409,9 @@ func TestAddUserInvalidFsConfig(t *testing.T) {
|
|||||||
u.FsConfig.S3Config.UploadPartSize = 3
|
u.FsConfig.S3Config.UploadPartSize = 3
|
||||||
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
u.FsConfig.S3Config.UploadPartSize = 5001
|
||||||
|
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||||
|
assert.NoError(t, err)
|
||||||
u.FsConfig.S3Config.UploadPartSize = 0
|
u.FsConfig.S3Config.UploadPartSize = 0
|
||||||
u.FsConfig.S3Config.UploadConcurrency = -1
|
u.FsConfig.S3Config.UploadConcurrency = -1
|
||||||
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||||
@@ -450,6 +453,13 @@ func TestAddUserInvalidFsConfig(t *testing.T) {
|
|||||||
u.FsConfig.AzBlobConfig.KeyPrefix = "/amedir/subdir/"
|
u.FsConfig.AzBlobConfig.KeyPrefix = "/amedir/subdir/"
|
||||||
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
u.FsConfig.AzBlobConfig.KeyPrefix = "amedir/subdir/"
|
||||||
|
u.FsConfig.AzBlobConfig.UploadPartSize = -1
|
||||||
|
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
u.FsConfig.AzBlobConfig.UploadPartSize = 101
|
||||||
|
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||||
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAddUserInvalidVirtualFolders(t *testing.T) {
|
func TestAddUserInvalidVirtualFolders(t *testing.T) {
|
||||||
|
|||||||
@@ -241,8 +241,8 @@ func ValidateS3FsConfig(config *S3FsConfig) error {
|
|||||||
config.KeyPrefix += "/"
|
config.KeyPrefix += "/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if config.UploadPartSize != 0 && config.UploadPartSize < 5 {
|
if config.UploadPartSize != 0 && (config.UploadPartSize < 5 || config.UploadPartSize > 5000) {
|
||||||
return errors.New("upload_part_size cannot be != 0 and lower than 5 (MB)")
|
return errors.New("upload_part_size cannot be != 0, lower than 5 (MB) or greater than 5000 (MB)")
|
||||||
}
|
}
|
||||||
if config.UploadConcurrency < 0 {
|
if config.UploadConcurrency < 0 {
|
||||||
return fmt.Errorf("invalid upload concurrency: %v", config.UploadConcurrency)
|
return fmt.Errorf("invalid upload concurrency: %v", config.UploadConcurrency)
|
||||||
@@ -297,7 +297,7 @@ func ValidateAzBlobFsConfig(config *AzBlobFsConfig) error {
|
|||||||
config.KeyPrefix += "/"
|
config.KeyPrefix += "/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if config.UploadPartSize < 0 {
|
if config.UploadPartSize < 0 || config.UploadPartSize > 100 {
|
||||||
return fmt.Errorf("invalid upload part size: %v", config.UploadPartSize)
|
return fmt.Errorf("invalid upload part size: %v", config.UploadPartSize)
|
||||||
}
|
}
|
||||||
if config.UploadConcurrency < 0 {
|
if config.UploadConcurrency < 0 {
|
||||||
|
|||||||
Reference in New Issue
Block a user