Merge "Allow custom headers when using swift download (CLI)"
This commit is contained in:
commit
a253b5cecd
16
bin/swift
16
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:
|
||||
|
@ -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] [...]
|
||||
|
Loading…
Reference in New Issue
Block a user