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
* Add INTELLIGENT_TIERING, GLACIER and DEEP_ARCHIVE as valid storage
classes for objects
* Add ObjectNotInActiveTierError error on PUT object copy for GLACIER
and DEEP_ARCHIVE storage class objects
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
Now that payloads are not allowed to be text, some unit tests will cause crashes
on Python 3 because the payload sent by requests gets passed to FakeKey as a
string instead of raw bytes.
I haven't been able to figure out a way around the issue that doesn't get super
messy inside s3/responses.py so I'm just converting the value to bytes using the
system's default encoding.
A PutBucketTags request with duplicate keys will raise a ClientError
with code InvalidTag and message 'Cannot provide multiple Tags with the
same key'.
* Added Filtering support for S3 lifecycle
Also added `ExpiredObjectDeleteMarker`.
closes#1533closes#1479
* Result set no longer contains "Prefix" if "Filter" is set.
* Some circumstances need subdomains to be ignored rather that interpreted as bucketname, this patch allows such behaviour to be configured
* Adding helper case whereby localstack features as path based exception
* Remove whitespace :(
* supporting utf-8 in key deletions
* Fixed decoding of version body when regexing
* Fixed some more random errors
* Possible fix
* Fixed unused import
* Added UTF comment Py2
* updates
- support lambda messages from SNS
- run lambda in docker container
* decode output
* populate timeout
* simplify
* whoops
* skeletons of cloudwatchlogs
* impl filter log streams
* fix logging
* PEP fixes
* PEP fixes
* fix reset
* fix reset
* add new endpoint
* fix region name
* add docker
* try to fix tests
* try to fix travis issue with boto
* fix escaping in urls
* fix environment variables
* fix PEP
* more pep
* switch back to precise
* another fix attempt
* fix typo
* fix lambda invoke
* fix more unittests
* work on getting this to work in new scheme
* fix py2
* fix error
* fix tests when running in server mode
* more lambda fixes
* try running with latest docker
adapted from aiodocker
* switch to docker python client
* pep fixes
* switch to docker volume
* fix unittest
* fix invoke from sns
* fix zip2tar
* add hack impl for get_function with zip
* try fix
* fix for py < 3.6
* add volume refcount
* try to fix travis
* docker test
* fix yaml
* try fix
* update endpoints
* fix
* another attempt
* try again
* fix recursive import
* refactor fix
* revert changes with better fix
* more reverts
* wait for service to come up
* add back detached mode
* sleep and add another exception type
* put this back for logging
* put back with note
* whoops :)
* docker in docker!
* fix invalid url
* hopefully last fix!
* fix lambda regions
* fix protocol
* travis!!!!
* just run lambda test for now
* use one print
* fix escaping
* another attempt
* yet another
* re-enable all tests
* fixes
* fix for py2
* revert change
* fix for py2.7
* fix output ordering
* remove this given there's a new unittest that covers it
* changes based on review
- add skeleton logs test file
- switch to docker image that matches test env
- fix mock_logs import
* add readme entry