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
|
||||
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||
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.UploadConcurrency = -1
|
||||
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||
@@ -450,6 +453,13 @@ func TestAddUserInvalidFsConfig(t *testing.T) {
|
||||
u.FsConfig.AzBlobConfig.KeyPrefix = "/amedir/subdir/"
|
||||
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||
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) {
|
||||
|
||||
@@ -241,8 +241,8 @@ func ValidateS3FsConfig(config *S3FsConfig) error {
|
||||
config.KeyPrefix += "/"
|
||||
}
|
||||
}
|
||||
if config.UploadPartSize != 0 && config.UploadPartSize < 5 {
|
||||
return errors.New("upload_part_size cannot be != 0 and lower than 5 (MB)")
|
||||
if config.UploadPartSize != 0 && (config.UploadPartSize < 5 || config.UploadPartSize > 5000) {
|
||||
return errors.New("upload_part_size cannot be != 0, lower than 5 (MB) or greater than 5000 (MB)")
|
||||
}
|
||||
if config.UploadConcurrency < 0 {
|
||||
return fmt.Errorf("invalid upload concurrency: %v", config.UploadConcurrency)
|
||||
@@ -297,7 +297,7 @@ func ValidateAzBlobFsConfig(config *AzBlobFsConfig) error {
|
||||
config.KeyPrefix += "/"
|
||||
}
|
||||
}
|
||||
if config.UploadPartSize < 0 {
|
||||
if config.UploadPartSize < 0 || config.UploadPartSize > 100 {
|
||||
return fmt.Errorf("invalid upload part size: %v", config.UploadPartSize)
|
||||
}
|
||||
if config.UploadConcurrency < 0 {
|
||||
|
||||
Reference in New Issue
Block a user