* - introduce environment variable for DEFAULT_KEY_BUFFER_SIZE
* - prefix env variable with MOTO_S3 to avoid env variable conflicts
* - reduce the DEFAULT_KEY_BUFFER_SIZE to be less than the S3_UPLOAD_PART_MIN_SIZE to prevent in memory caching of multi part uploads
* - black formatting
* - fix formatting
* - fix missing import
* Update the s3 post functionality to better support success_action_redirect
- Add the bucket/key values to the redirect url like s3 does, which
supports code that relies on the key value being there on the
redirect.
- Add support for replacing ${filename} in the key value with the actual
filename from the form upload.
See Issue #3667
* Update s3 tests for changed success_action_redirect behavior
- Adds a new test called test_s3_server_post_to_bucket_redirect that
tests both the ${filename} replacement and the key/value addition to the
redirect query args
- Updated the test_creating_presigned_post checks to handle the
key/value additions to the redirect url.
* Fix test updates to work with python2.7
- remove f-string usage
- fix urllib.parse imports to use six
Co-authored-by: Wynn Wilkes <wynn@leading2lean.com>
These tests, when run, do not execute any `moto` code. They fail the
parameter validation check in `botocore`, which raises an exception
before ever sending a request. These tests do not cover or verify
any `moto` behavior and have been removed.
* IAM User Cloudformation Enhancements: update, delete, getatt.
* AWS::IAM::Policy Support
* Added unit tests for AWS:IAM:Policy for roles and groups. Fixed bug related to groups.
* AWS:IAM:AccessKey CloudFormation support.
* Refactor of CloudFormation parsing.py methods to simplify and standardize how they call to the models. Adjusted some models accordingly.
* Further model CloudFormation support changes to align with revised CloudFormation logic. Mostly avoidance of getting resoure name from properties.
* Support for Kinesis Stream RetentionPeriodHours param.
* Kinesis Stream Cloudformation Tag Support.
* Added omitted 'region' param to boto3.client() calls in new tests.
Co-authored-by: Joseph Weitekamp <jweite@amazon.com>
* First cut of S3 Cloudformation Update support: encryption property.
* Update type support for S3. Abstract base class for CloudFormation-aware models, as designed by @bblommers, introduced to decentralize CloudFormation resource and name property values to model objects.
* Blackened...
* Un-renamed param in s3.models.update_from_cloudformation_json() and its call to stay compatible with other modules.
Co-authored-by: Bert Blommers <bblommers@users.noreply.github.com>
Co-authored-by: Joseph Weitekamp <jweite@amazon.com>
Co-authored-by: Bert Blommers <info@bertblommers.nl>
* Several updates to the contributor documentation with extra information.
* Fix failing test by providing a region.
* Create test for issue 2210.
* Check if CreateBucketConfiguration is supplied and empty; raise MalformedXML error if so.
* implemented s3 default encryption methods
* PR adjustments: moved logic for retrieving bucket's encrypted status to the backend.
Co-authored-by: Joseph Weitekamp <jweite@amazon.com>
- Small bug in tags with AWS Config
- Aggregated results lack "tags" in the result set
- Buckets also add a supplementary configuration of
"BucketTaggingConfiguration"
PR #2062 fixes copy for unicode keys. However, the change breaks keys
with question marks. Here is an alternative fix that works for both
emojis and question marks.
I notice this when running the test suite of aiobotocore. One of the
tests [1] is broken with moto >= 1.3.8.
[1] https://github.com/aio-libs/aiobotocore/blob/0.10.3/tests/test_basic_s3.py#L314-L329
There is no reason to use 5M chunks, especially with the reduced_part_size
decorator. Also made part_size to be variable to add extra layer of
testing to make sure that moto is handling that scenario correctly.
Signed-off-by: Ruslan Kuprieiev <ruslan@iterative.ai>
To support it, we need to keep multipart info in the key itself when
completing multipart upload.
Fixes#2154
Signed-off-by: Ruslan Kuprieiev <ruslan@iterative.ai>
* chore(): remove executable flag on moto/s3/response.py
* chore(): ignore .eggs temp file
* feat(#1987): get bucket acceleration support
* feat(#1987): put bucket acceleration support
* feat(#1987): suspend undefined bucket is a no-op
* feat(#1987): validate accelerate_configuration status
* feat(#1987): bucket containing dots do not support acceleration
* doc(#1987): update implementation coverage