summaryrefslogtreecommitdiff
path: root/boto
diff options
context:
space:
mode:
authorDaniel G. Taylor <dan@programmer-art.org>2014-09-02 10:50:02 -0700
committerDaniel G. Taylor <dan@programmer-art.org>2014-09-02 10:50:02 -0700
commit39cbcb5dbe5631f07ce829d15eaeedd1ecefab10 (patch)
tree4ed4f649f44161b1448e734d10b5126bad28b84e /boto
parentc1dd1fb4474883b0e09b86392620a981168dc961 (diff)
parent7f31661d15cd7a6182e9baeb829a7bf0006b8d62 (diff)
downloadboto-39cbcb5dbe5631f07ce829d15eaeedd1ecefab10.tar.gz
Merge pull request #2562 from kouk/bucketlisturlencoding
Avoid infinite loop with bucket listing and encoding_type='url'. Fixes #2562, #2561.
Diffstat (limited to 'boto')
-rw-r--r--boto/s3/bucketlistresultset.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/boto/s3/bucketlistresultset.py b/boto/s3/bucketlistresultset.py
index f0bc0602..ab9c65e4 100644
--- a/boto/s3/bucketlistresultset.py
+++ b/boto/s3/bucketlistresultset.py
@@ -19,6 +19,8 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
+from boto.compat import urllib, six
+
def bucket_lister(bucket, prefix='', delimiter='', marker='', headers=None,
encoding_type=None):
"""
@@ -34,6 +36,10 @@ def bucket_lister(bucket, prefix='', delimiter='', marker='', headers=None,
yield k
if k:
marker = rs.next_marker or k.name
+ if marker and encoding_type == "url":
+ if isinstance(marker, six.text_type):
+ marker = marker.encode('utf-8')
+ marker = urllib.parse.unquote(marker)
more_results= rs.is_truncated
class BucketListResultSet(object):