Merge "Allow custom headers when using swift download (CLI)"

This commit is contained in:
Jenkins 2013-11-27 10:16:55 +00:00 committed by Gerrit Code Review
commit a253b5cecd
2 changed files with 17 additions and 1 deletions

View File

@ -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:

View File

@ -82,6 +82,8 @@ Downloads everything in the account (with --all), or everything in a
container, or a list of objects depending on the args given. For a single
object download, you may use the -o [--output] <filename> option to
redirect the output to a specific file or if "-" then just redirect to stdout.
You can specify optional headers with the repeatable cURL-like option
-H [--header].
.RE
\fBdelete\fR [\fIcommand-options\fR] [\fIcontainer\fR] [\fIobject\fR] [\fIobject\fR] [...]