40 |
40 |
from kamaki.cli.errors import raiseCLIError, CLISyntaxError, CLIBaseUrlError
|
41 |
41 |
from kamaki.cli.utils import (
|
42 |
42 |
format_size, to_bytes, print_dict, print_items, pretty_keys, pretty_dict,
|
43 |
|
page_hold, bold, ask_user, get_path_size, print_json)
|
|
43 |
page_hold, bold, ask_user, get_path_size, print_json, guess_mime_type)
|
44 |
44 |
from kamaki.cli.argument import FlagArgument, ValueArgument, IntArgument
|
45 |
45 |
from kamaki.cli.argument import KeyValueArgument, DateArgument
|
46 |
46 |
from kamaki.cli.argument import ProgressBarArgument
|
... | ... | |
983 |
983 |
@errors.pithos.container
|
984 |
984 |
@errors.pithos.object_path
|
985 |
985 |
def _run(self):
|
|
986 |
ctype, cenv = guess_mime_type(self.path)
|
986 |
987 |
self._optional_output(self.client.create_object_by_manifestation(
|
987 |
988 |
self.path,
|
988 |
|
content_encoding=self['content_encoding'],
|
|
989 |
content_encoding=self['content_encoding'] or cenc,
|
989 |
990 |
content_disposition=self['content_disposition'],
|
990 |
|
content_type=self['content_type'],
|
|
991 |
content_type=self['content_type'], or ctype,
|
991 |
992 |
sharing=self['sharing'],
|
992 |
993 |
public=self['public']))
|
993 |
994 |
|
... | ... | |
1135 |
1136 |
container_info_cache = dict()
|
1136 |
1137 |
for f, rpath in self._path_pairs(local_path, remote_path):
|
1137 |
1138 |
print('%s --> %s:%s' % (f.name, self.client.container, rpath))
|
|
1139 |
if not (self['content_type'] and self['content_encoding']):
|
|
1140 |
ctype, cenc = guess_mime_type(f.name)
|
|
1141 |
params['content_type'] = self['content_type'] or ctype
|
|
1142 |
params['content_encoding'] = self['content_encoding'] or cenc
|
1138 |
1143 |
if self['unchunked']:
|
1139 |
1144 |
r = self.client.upload_object_unchunked(
|
1140 |
1145 |
rpath, f,
|