summaryrefslogtreecommitdiff
path: root/bin/swift
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-11-27 10:16:55 +0000
committerGerrit Code Review <review@openstack.org>2013-11-27 10:16:55 +0000
commita253b5cecd95137069bdf40e4b18abada6f15a22 (patch)
treed898488de5759eb523284ca98bdf3da057c361f3 /bin/swift
parent04e0cb27839cec474bce383d4364fd76dcb6e4b2 (diff)
parent3cabda8c48dfe559e3f707c2750036247988d9d3 (diff)
downloadpython-swiftclient-a253b5cecd95137069bdf40e4b18abada6f15a22.tar.gz
Merge "Allow custom headers when using swift download (CLI)"
Diffstat (limited to 'bin/swift')
-rwxr-xr-xbin/swift16
1 files changed, 15 insertions, 1 deletions
diff --git a/bin/swift b/bin/swift
index d50463a..eb42c13 100755
--- a/bin/swift
+++ b/bin/swift
@@ -266,6 +266,11 @@ Optional arguments:
Number of threads to use for deleting containers
--no-download Perform download(s), but don't actually write anything
to disk
+ --header <header_name:header_value>
+ Adds a customized request header to the query, like
+ "Range" or "If-Match". This argument is repeatable.
+ Example --header "content-type:text/plain"
+
'''.strip("\n")
@@ -294,6 +299,13 @@ def st_download(parser, args, thread_manager):
'', '--no-download', action='store_true',
default=False,
help="Perform download(s), but don't actually write anything to disk")
+ parser.add_option(
+ '-H', '--header', action='append', dest='header',
+ default=[],
+ help='Specify a request header, as --header NAME:VALUE. '
+ 'Adds a customized request header to the query, like "Range" or '
+ '"If-Match". This argument is repeatable. Example'
+ ' --header "content-type:text/plain"')
(options, args) = parse_args(parser, args)
args = args[1:]
if options.out_file == '-':
@@ -304,6 +316,7 @@ def st_download(parser, args, thread_manager):
thread_manager.error('Usage: %s download %s\n%s', basename(argv[0]),
st_download_options, st_download_help)
return
+ req_headers = split_headers(options.header, '', thread_manager)
def _download_object(queue_arg, conn):
if len(queue_arg) == 2:
@@ -316,7 +329,8 @@ def st_download(parser, args, thread_manager):
try:
start_time = time()
headers, body = \
- conn.get_object(container, obj, resp_chunk_size=65536)
+ conn.get_object(container, obj, resp_chunk_size=65536,
+ headers=req_headers)
header_receipt = time()
content_type = headers.get('content-type')
if 'content-length' in headers: