Commit Graph

257 Commits

Author SHA1 Message Date
Alexander Mohr
93a404ec37 pep 2018-05-03 02:10:17 -07:00
Alexander Mohr
7a57dc2034 fix errors 2018-05-03 01:40:49 -07:00
Mike Grima
4184acc0d2 Added Filtering support for S3 lifecycle (#1535)
* Added Filtering support for S3 lifecycle

Also added `ExpiredObjectDeleteMarker`.

closes #1533
closes #1479

* Result set no longer contains "Prefix" if "Filter" is set.
2018-04-02 14:19:14 -07:00
Colin Jones
1a8a4a084d S3 Ignore Subdomain for Bucketname Flag (#1419)
* 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 :(
2018-03-21 09:33:09 -07:00
Mike Grima
cc14114afe Implemented S3 get/put_notification_configuration (#1516)
closes #973
2018-03-21 09:11:24 -07:00
Steve Pulec
ece7507eec
Merge pull request #1430 from OwnZones/urldecode_fix
Url decode x-amz-copy-source for S3 copyObject requests
2018-03-06 22:26:15 -05:00
Steve Pulec
326698f3fa
Merge pull request #1460 from okomestudio/s3-region-from-url
Support both virtual-hosted and path-style URLs for region name parsing
2018-03-06 21:57:57 -05:00
Taro Sato
5e70d0ce4c Support both virtual-hosted-style and path-style URLs for region name parsing 2018-01-30 16:10:43 -08:00
Taro Sato
c7bcbadc6e Fix the S3 HEAD response body 2018-01-30 13:48:04 -08:00
ciprianaradulescu
c431a3a774
Merge branch 'master' into urldecode_fix 2018-01-14 19:58:48 +02:00
Ciprian Radulescu
ef9b229acc url decode x-amz-copy-source as per s3 nodejs documentation 2018-01-14 18:49:47 +02:00
Mike Grima
770281aef2 Added put_bucket_logging support (#1401)
- Also added put acl for XML
- Put logging will also verify that the destination bucket exists in the same region with the proper ACLs attached.
2018-01-02 20:47:57 -08:00
Waldemar Hummer
cdb7305dac use S3 path style addressing when running in kubernetes (#1315) 2017-11-15 19:37:39 +00:00
Terry Cain
d447929d29 utf 8 in key deletions V2 (#1321)
* 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
2017-11-06 13:39:08 -08:00
Brian Pandola
68a1e41286 Fix #1318 2017-11-02 23:03:54 -07:00
Mike Grima
7167e09ca5 Fixed bug in S3 put_bucket_tagging. Closes #1181. 2017-09-22 13:35:00 -07:00
Jack Danger
390fe85137 supporting httpretty requests 2017-09-22 10:44:55 -07:00
Jack Danger
ea66a71765 supporting signed urls for private keys 2017-09-22 10:44:37 -07:00
Jack Danger
ca7661bc1e S3 keys inherit bucket ACL 2017-09-20 19:04:23 -07:00
Jack Danger
2055bb62f5 enforce s3 acls 2017-09-16 12:49:07 -07:00
Julien Duchesne
83dd9559db Handle "max-keys" in list-objects 2017-09-10 10:42:17 -07:00
Julien Duchesne
14dec68f15 Remove superfluous space 2017-09-09 00:27:54 -04:00
Julien Duchesne
0ddbcb5464 Handle 'marker' paginating parameter in the list-objects query 2017-09-09 00:25:02 -04:00
Mike Grima
5d8cd22b01 Fixed S3 lifecycle error message. (#1110)
Fixes #1109
Also added PutBucketTagging support
Also added Bucket CORS support
2017-09-07 11:30:05 -07:00
Alexander Mohr
2447725e98 fix list-object-versions with prefix (#1045)
fix list-object-versions with prefix
2017-08-10 17:14:31 -07:00
Taro Sato
38fa6809c0 Make HEAD bucket throw ClientError instead of NoSuchBucket on boto3 2017-07-20 15:39:45 -07:00
eric-weaver
abf3078c28 implement s3 object tagging 2017-07-15 22:36:12 -04:00
Steve Pulec
113bfcb4ea Fix duplicate bucket creation with LocationConstraint. Closes #970. 2017-06-03 19:29:59 -04:00
Jack Danger
6163363c15 Merge pull request #960 from spg/feat-s3-if-modified-since
feat(s3) HeadObject: honor If-Modified-Since header
2017-06-01 09:10:20 -07:00
Simon-Pierre Gingras
a2a6514936 attempt at fixing tests 2017-05-23 11:29:01 -07:00
Kate Heddleston
a21413f4ea NoSuchKey error in S3 is actually '404'
Fixes #571 and #953
2017-05-22 19:08:12 -07:00
Simon-Pierre Gingras
517416c4d9 feat(s3) HeadObject: honor If-Modified-Since header 2017-05-19 15:59:25 -07:00
georgepsarakis
9a861a367d Enable DeleteMarker support for versioned buckets
- Add object version deletion
- Add DeleteMarker in versioned key store as latest version
- GetObject returns NoSuchKey for objects with DeleteMarker as latest
  version
- Enable IsLatest in response when listing object versions
2017-05-14 19:56:25 +03:00
Steve Pulec
152d71e4f3 Merge pull request #922 from georgepsarakis/bug/s3_list_versions_valueerror
ValueError when calling boto3 list_object_versions
2017-05-10 22:06:26 -04:00
Jack Danger Canty
a2fd72d2f8 Require content-length header
fixes #908
2017-05-01 12:13:12 -07:00
georgepsarakis
617e994ac6 Specify integer value for MaxKeys in S3 response 2017-04-29 22:35:25 +03:00
Steve Pulec
e9bf74d8e3 Merge pull request #904 from ambrusadrianz/master
Fixed S3 copyObject compatibility with the Java AWS SDK
2017-04-15 23:46:21 -04:00
Ambrus Adrian
121a68be49 Fixed compatibility issue with the Java AWS SDK
Issue is described here: https://github.com/spulec/moto/issues/900
2017-04-15 01:06:28 +03:00
Dmytro Milinevskyy
6e61ee4caa s3: handle WebsiteRedirectLocation
spulec/moto#821
2017-04-14 13:32:52 +02:00
Waldemar Hummer
b8a41c5605 fix domain handling for local domain names in S3 API 2017-04-08 15:28:51 +10:00
Steve Pulec
446843e756 Fix py3 s3 prefix decoding. 2017-03-15 23:13:09 -04:00
Steve Pulec
3899eee648 Fix S3 filtering by unicode prefix. Closes #838 2017-03-15 22:53:27 -04:00
Steve Pulec
5f3fbff627 Standardize on one account id (123456789012). 2017-03-15 22:21:04 -04:00
Steve Pulec
f37bad0e00 Lints. 2017-02-23 21:37:43 -05:00
Steve Pulec
cad185c74d Cleanup headers and encoding. 2017-02-16 22:51:04 -05:00
Steve Pulec
fde721bed7 Testing new version of decorator. 2017-02-15 22:35:45 -05:00
Stefan Nordhausen
1a01bae74e Implement list_objects_v2() for S3 buckets (#814)
This adds/fixes the following things:
- Add missing KeyCount in result (fixes #734).
- Do not hard code MaxKeys to 1000.
- Truncate result if it has more than MaxKeys items. Set IsTruncated
    and NextContinuationToken accordingly.
- Support the StartAfter parameter.
- Return Owner information only when FetchOwner=True is given.
- "Prefix" in response is now "" instead of None when omitted in request.
- "Delimiter" is now omitted from response when not given in request.
2017-02-08 21:21:43 -05:00
mfranke
5dc8e59fab Fix s3bucket_path (#784)
* check HTTP header for IPv4 or IPv6 addresses and default to path based S3

* improved IPv4 and IPv6 checking with optional ports

* typo

* subdomain bucket creation with trailing '/' did not work

* Use regex for Host field check to determine IPv4/IPv6

* add testcases for trailing slash, IPv4 and IPv6
2016-12-03 18:15:24 -05:00
Tom V
c54985a39f Fix for #748. Turn on autoescape for S3 templates. (#779) 2016-12-03 18:13:24 -05:00
mfranke
040c2cd8cc Fix s3bucketpath handling for IP based requests (#765)
* check HTTP header for IPv4 or IPv6 addresses and default to path based S3

* improved IPv4 and IPv6 checking with optional ports

* typo
2016-11-23 19:05:34 -06:00
Taro Sato
bdb9d59e46 Update response headers with response_dict from key; add tests 2016-09-20 15:42:21 -07:00
George Leslie-Waksman
48c57384c5 Return headers and response matching AWS specification for copy_from requests. 2016-06-13 13:24:09 -07:00
Steve Pulec
bd7327fca2 Fix issues around S3 deletion. Closes #606. 2016-05-08 17:14:35 -04:00
Steve Pulec
79addb8926 Add S3 functionality to copy range. Closes #526. 2016-05-05 22:52:12 -04:00
Steve Pulec
15dc619fb2 More liberal regrex for S3 region matching. Closes #580. 2016-05-01 21:17:06 -04:00
Steve Pulec
b932343fec Break out MissingKey as separate exception. Closes #571. 2016-05-01 17:04:09 -04:00
Dan Felix
1988c957e0 Pass query to _key_response_head for versioning support. 2016-04-28 13:16:25 -07:00
George Leslie-Waksman
0ed7d1bb71 Add support for src_version_id to bucket copy_key op. 2016-04-27 17:08:44 -07:00
Steve Pulec
31dbe61233 Fix s3 url regex. Closes #516. 2016-01-24 17:15:21 -05:00
Daniel Miller
35a89da273 Fix delete keys with werkzeug request 2016-01-22 12:44:57 -05:00
Daniel Miller
89d5c72d86 Fix delete keys detection with werkzeug request 2016-01-22 12:44:12 -05:00
Steve Pulec
075d008509 Change s3 urls to ordereddict to fix python3 issues. 2016-01-17 17:19:53 -05:00
Steve Pulec
0df03ba409 cleanup code. 2015-11-27 14:43:03 -05:00
Steve Pulec
1df454a632 first working version of s3 refactor. 2015-11-27 14:14:59 -05:00
Steve Pulec
c38731ecbb Add ACL support for S3 buckets. 2015-11-11 20:26:29 -05:00
Steve Pulec
18d63a6cfe Add basics of S# website configuration. Closes #442. 2015-11-04 18:55:41 -05:00
Steve Pulec
d3e4c2c4b5 Add ability for specific backends to enable template escaping. Closes #441. 2015-11-03 09:25:47 -05:00
Mike Kaplinskiy
131d44f0ad Add S3 ACL supprt. 2015-10-07 00:14:37 -07:00
zeb
b59a77d5bb Tweak bucket.delete_keys for s3bucket_path. 2015-09-04 19:02:26 +02:00
Steve Pulec
323f720cb5 Fix S3 bucket policy delete. Closes #396. 2015-08-07 22:43:24 -04:00
Simon-Pierre Gingras
dc0557205d S3: Bucket policy 2015-07-23 17:33:52 -04:00
MurphyMarkW
b82d0264dc Fixes suffix range requests to truncate ranges. 2015-06-30 02:04:30 -05:00
MurphyMarkW
723b743381 Modifies check for last-byte-pos. 2015-06-30 00:26:42 -05:00
MurphyMarkW
2cdab4cab9 Fixes last-byte-pos interpretation. 2015-06-29 20:25:22 -05:00
Steve Pulec
5ee1525cd8 Fix S3 missing key error. Closes #364. 2015-06-27 17:56:37 -04:00
Daniel O'Connell
5cc8f9ed21 S3_BUCKET_VERSIONING and S3_BUCKET_GET_VERSIONING were generating invalid XML, as the '<?xml version="1.0" encoding="UTF-8"?>' bit must be on the first line. 2015-06-12 08:56:14 +02:00
Steve Pulec
91fffbb83b Add basics for S3 bucket lifecycles. 2015-06-02 23:11:23 -04:00
John Lynn
0496d4669e Fix bucket versioning when running under moto_server 2015-02-22 22:22:41 +07:00
Steve Pulec
53a6d2466b Merge pull request #298 from kouk/ranged_get
support ranged get in S3
2015-02-14 08:35:23 -05:00
Konstantinos Koukopoulos
e1163e5223 fix some boundary conditions 2015-02-10 19:43:24 +02:00
Konstantinos Koukopoulos
261328d449 set content-range header so boto knows this is a ranged response 2015-02-10 19:15:10 +02:00
Konstantinos Koukopoulos
418a6a118e return proper status codes in range get, fix suffix range 2015-02-10 19:14:47 +02:00
Konstantinos Koukopoulos
9efd12c43c support more range specifiers in ranged gets 2015-02-10 17:55:44 +02:00
Konstantinos Koukopoulos
dbf1e64d44 support ranged get in S3 2015-02-10 17:28:18 +02:00
Konstantinos Koukopoulos
2dd174b577 use request body in complete upload, improve exception handling 2015-02-10 16:56:56 +02:00
Konstantinos Koukopoulos
1460a5a3c7 refactor S3 exceptions to inherit from RESTError 2015-02-10 15:33:18 +02:00
Josh Palmer
7e3516f997 Added support for listing multipart uploads with prefix. 2015-01-29 17:24:23 +01:00
dreadpirateshawn
aff5dd408c Performance: Leverage jinja2's Environment to cache compiled Templates. (fixed merge) 2014-12-12 13:05:46 -08:00
dreadpirateshawn
7ce83082ca Merge remote-tracking branch 'origin/master' into ImproveTemplatePerformance
Conflicts:
	moto/s3/responses.py
2014-12-12 12:51:29 -08:00
dreadpirateshawn
9affa7753d Performance: Leverage jinja2's Environment to cache compiled Templates. 2014-12-12 12:46:07 -08:00
Steve Pulec
4ab3b318eb Add S3 location response. Closes #279. 2014-12-10 20:44:00 -05:00
Steve Pulec
a2e56afef8 Add special S3 bucket create logic for us-east-1. Closes #273. 2014-12-10 20:20:51 -05:00
Steve Pulec
3a82f089a2 Cleanup metadata setting and add fix for multipart uploads. Closes #274. 2014-12-07 12:43:14 -05:00
Steve Pulec
e88e3d5372 S3 Fixes for special metadata headers. 2014-11-27 10:43:10 -05:00
Steve Pulec
9024066957 Fixes for some S3 Unicode issues. Closes #158. 2014-11-22 10:19:56 -05:00
Steve Pulec
8d6868f9d3 For S3 Key Head requests, just return the real body for now so that key length works. Closes #131. 2014-11-19 21:06:23 -05:00
Steve Pulec
8bc8f09b47 Some flake8 cleanup. 2014-11-15 09:35:52 -05:00
Konstantinos Koukopoulos
0502427ac1 treat request.headers as a more general list of dicts 2014-09-10 17:37:20 +03:00
David Baumgold
eedb4c4b73 Support Python 3 using six 2014-08-28 10:57:43 -04:00
David Baumgold
4201e6b430 from __future__ import unicode_literals 2014-08-27 11:33:55 -04:00
Steve Pulec
64ed605c14 Ignore S3 ACL for now since we do not implement it. 2014-08-13 22:13:23 -04:00
Steve Pulec
5e35348c0d Cleanup S3 model methods to better deal with missing buckets. 2014-07-08 21:20:29 -04:00
Richard Eames
4cc45c3ac5 Implementation of bucket.list_versions 2014-06-27 16:21:32 -06:00
Richard Eames
5409d99ca2 Added basic implementation of key/bucket versioning 2014-06-27 11:34:00 -06:00
Gabe Rives-Corbett
9f912e7a1f Implemeted bucket.delete_keys closes #124 2014-05-06 17:21:33 -04:00
Konstantinos Koukopoulos
d4602b9cae support listing all multipart uploads 2014-04-02 19:09:48 +03:00
Steve Pulec
1767d17018 Cleanup S3 a bit and add more coverage 2014-03-30 11:50:36 -04:00
Steve Pulec
069c48b43a Merge pull request #115 from kouk/s3restore
RRD and restore support
2014-03-27 08:40:18 -04:00
Konstantinos Koukopoulos
8ada1d7829 support restore operation on s3 keys 2014-03-26 19:15:08 +02:00
Konstantinos Koukopoulos
c9d5dffa24 support reduced redundancy storage 2014-03-26 17:52:31 +02:00
Konstantinos Koukopoulos
2ba64e1322 support replacing key metadata when copying 2014-03-26 16:02:14 +02:00
Joe Rickerby
73602958ed Fix bug with POST uploads returning 400 client error 2014-03-26 13:53:14 +00:00
Konstantinos Koukopoulos
c68a1d3e9d support x-amz-copy-source in multipart uploads 2014-03-21 17:33:51 +02:00
Steve Pulec
60cd79c6e2 S3 Mock should return an HTTP 409 if trying to create a bucket that
already exists. Closes #94.
2014-03-16 21:25:54 -04:00
Gilles Dartiguelongue
49ecfad6b1 Implement HEAD method due to changes in boto 2.25, closes: #91 2014-02-10 12:18:12 +01:00
Konstantinos Koukopoulos
3628e40f3c Merge remote-tracking branch 'spulec/master'
Conflicts:
	moto/s3/responses.py
2013-11-14 17:17:35 +02:00
Jeff Gregory
df3155c869 when getting a key (HEAD request) return key.value instead of empty string. This is will mirror boto's method. 2013-11-08 15:36:39 -05:00
Brock Pytlik
5a475881d2 support bucket names in url paths in s3bucket_path 2013-11-08 15:36:38 -05:00
Jeff Gregory
c75a233f6c when getting a key (HEAD request) return key.value instead of empty string. This is will mirror boto's method. 2013-10-25 14:36:49 -07:00
Steve Pulec
d8ca75deaa Merge pull request #48 from spulec/py26
Now supporting Python 2.6 as long as we're using the very latest HTTPretty
2013-10-03 17:43:37 -07:00
Steve Pulec
3bddbb4af3 Test out py26 with new HTTPretty 2013-10-03 20:34:13 -04:00
Konstantinos Koukopoulos
b1d59c7e17 support cancelling of multipart upload 2013-09-30 18:36:25 +03:00
Konstantinos Koukopoulos
e49006c723 remove pdb 2013-09-30 16:36:51 +03:00
Konstantinos Koukopoulos
4539012db6 throw proper error if multipart upload is too small 2013-09-30 14:35:24 +03:00
Konstantinos Koukopoulos
aead9bb0d5 Complete MultiPart Operation does specify a body 2013-09-30 14:34:56 +03:00
Konstantinos Koukopoulos
04789a59fa don't forget to send the etag in the headers when uploading a part 2013-09-30 12:10:05 +03:00
Konstantinos Koukopoulos
9746e72e1d implement list parts 2013-09-30 12:09:35 +03:00
Konstantinos Koukopoulos
24ff30f9fc multipart_id doesn't exist, it's upload_id 2013-09-30 11:51:18 +03:00
Konstantinos Koukopoulos
0b45622dcb render part upload response correctly 2013-09-30 11:50:41 +03:00
Konstantinos Koukopoulos
f25caa872d Merge branch 'master' of github.com:spulec/moto
Conflicts:
	moto/s3/models.py
	moto/s3/responses.py
2013-09-30 11:02:25 +03:00
Ryan Permeh
e951a7f2d7 push fixed value 2013-09-27 11:00:40 -07:00
Ryan Permeh
a5ecf26f5a updated to fix split issue with paths with slashes 2013-09-27 10:47:32 -07:00
Dan Berglund
7de4399b93 Added tests and made current tests pass 2013-05-17 11:43:09 +02:00
Dan Berglund
d8e9301c54 Added metadata to HEAD-response, boto uses this when only metadata is fetched 2013-05-17 09:59:05 +02:00
Dan Berglund
3880be5ea9 Added support for metadata on files, and support for POST:ing files to S3 2013-05-17 09:59:04 +02:00
Steve Pulec
4c8244b755 Clean up code for listing s3 keys. Fix #14. 2013-05-07 00:03:05 -04:00
Steve Pulec
caf73557cd Fix issue with large S3 values. Closes #11. 2013-05-06 23:33:59 -04:00
Steve Pulec
4345077173 coverage back at 100% 2013-05-03 20:14:33 -04:00
Steve Pulec
47bd4c49a3 attempting to move to upstream httpretty 2013-05-03 19:33:13 -04:00
Steve Pulec
be26daaff4 Fix S3 bucket list objects order and delimiters. Closes #14. 2013-04-13 19:23:32 -04:00
Steve Pulec
b7c46ae7bf fix S3 last_modified. Closes #8 2013-03-29 17:45:33 -04:00
Lucian Branescu Mihaila
5854219a4c Upload part and complete upload. Somehow, boto doesn't like output I send it, even though it's copy-pasted from its own logs. 2013-03-26 15:50:18 +00:00
Lucian Branescu Mihaila
f557487e06 Beginning of multipart upload support. 2013-03-26 14:52:33 +00:00
Steve Pulec
e64c73efed Allow writing empty body to s3 key if content-length is zero. Better fix for #6. 2013-03-26 10:11:16 -04:00
Steve Pulec
756955b61e Temporary fix to allow for writing empty strings to s3 keys. Closes #6. 2013-03-26 09:02:04 -04:00
Steve Pulec
cd518d060e move to httpretty fork instead of bundling it. 2013-03-17 18:13:21 -04:00
Steve Pulec
2d98a9caef some more tests to bump coverage 2013-03-11 00:12:22 -04:00
Steve Pulec
a728b2581a Adding server mode 2013-03-05 08:14:43 -05:00
Steve Pulec
b0d89bb7b7 fix s3 key list and missing key response 2013-02-27 01:12:11 -05:00
Steve Pulec
757c45c659 replace pdbs with NotImplemented 2013-02-25 23:21:49 -05:00