diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-05-19 08:53:50 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-05-19 08:53:50 +0000 |
| commit | 8ffc5c11ae6e246769a15104096873ed47d535a5 (patch) | |
| tree | d935612a7201fb3298cca5643b51005760a6723c /swiftclient/service.py | |
| parent | 8da9cbf1615002e44038ae2161ba278ea5c05758 (diff) | |
| parent | 9fd537a08245cf6a34c1abdf8b7c42bfd3669c74 (diff) | |
| download | python-swiftclient-8ffc5c11ae6e246769a15104096873ed47d535a5.tar.gz | |
Merge "Use application/directory content-type for dir markers"
Diffstat (limited to 'swiftclient/service.py')
| -rw-r--r-- | swiftclient/service.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/swiftclient/service.py b/swiftclient/service.py index 081d624..de08090 100644 --- a/swiftclient/service.py +++ b/swiftclient/service.py @@ -202,6 +202,10 @@ _default_local_options = { } POLICY = 'X-Storage-Policy' +KNOWN_DIR_MARKERS = ( + 'application/directory', # Preferred + 'text/directory', # Historically relevant +) def get_from_queue(q, timeout=864000): @@ -1143,9 +1147,8 @@ class SwiftService(object): fp = None try: - content_type = headers.get('content-type') - if (content_type and - content_type.split(';', 1)[0] == 'text/directory'): + content_type = headers.get('content-type', '').split(';', 1)[0] + if content_type in KNOWN_DIR_MARKERS: make_dir = not no_file and out_file != "-" if make_dir and not isdir(path): mkdirs(path) @@ -1603,12 +1606,12 @@ class SwiftService(object): if options['changed']: try: headers = conn.head_object(container, obj) - ct = headers.get('content-type') + ct = headers.get('content-type', '').split(';', 1)[0] cl = int(headers.get('content-length')) et = headers.get('etag') mt = headers.get('x-object-meta-mtime') - if (ct.split(';', 1)[0] == 'text/directory' and + if (ct in KNOWN_DIR_MARKERS and cl == 0 and et == EMPTY_ETAG and mt == put_headers['x-object-meta-mtime']): @@ -1627,7 +1630,7 @@ class SwiftService(object): return res try: conn.put_object(container, obj, '', content_length=0, - content_type='text/directory', + content_type=KNOWN_DIR_MARKERS[0], headers=put_headers, response_dict=results_dict) res.update({ |
