... | ... |
@@ -558,6 +558,12 @@ class S3(object): |
558 | 558 |
response = self.send_request(request) |
559 | 559 |
return response |
560 | 560 |
|
561 |
+ def list_multipart(self, uri, id): |
|
562 |
+ request = self.create_request("OBJECT_GET", uri=uri, |
|
563 |
+ extra = ("?uploadId=%s" % id)) |
|
564 |
+ response = self.send_request(request) |
|
565 |
+ return response |
|
566 |
+ |
|
561 | 567 |
def get_accesslog(self, uri): |
562 | 568 |
request = self.create_request("BUCKET_LIST", bucket = uri.bucket(), extra = "?logging") |
563 | 569 |
response = self.send_request(request) |
... | ... |
@@ -1272,6 +1272,22 @@ def cmd_abort_multipart(args): |
1272 | 1272 |
debug(u"response - %s" % response['status']) |
1273 | 1273 |
output(u"%s" % uri) |
1274 | 1274 |
|
1275 |
+def cmd_list_multipart(args): |
|
1276 |
+ '''{"cmd":"abortmp", "label":"list a multipart upload", "param":"s3://BUCKET Id", "func":cmd_list_multipart, "argc":2},''' |
|
1277 |
+ s3 = S3(cfg) |
|
1278 |
+ uri = S3Uri(args[0]) |
|
1279 |
+ id = args[1] |
|
1280 |
+ output(u"hogehoghoe") |
|
1281 |
+ response = s3.list_multipart(uri, id) |
|
1282 |
+ debug(u"response - %s" % response['status']) |
|
1283 |
+ tree = getTreeFromXml(response['data']) |
|
1284 |
+ output(u"LastModified\t\t\tPartNumber\tETag\tSize") |
|
1285 |
+ for mpupload in parseNodes(tree): |
|
1286 |
+ try: |
|
1287 |
+ output("%s\t%s\t%s\t%s" % (mpupload['LastModified'], mpupload['PartNumber'], mpupload['ETag'], mpupload['Size'])) |
|
1288 |
+ except: |
|
1289 |
+ pass |
|
1290 |
+ |
|
1275 | 1291 |
def cmd_accesslog(args): |
1276 | 1292 |
s3 = S3(cfg) |
1277 | 1293 |
bucket_uri = S3Uri(args.pop()) |
... | ... |
@@ -1628,6 +1644,7 @@ def get_commands_list(): |
1628 | 1628 |
|
1629 | 1629 |
{"cmd":"multipart", "label":"show multipart uploads", "param":"s3://BUCKET [Id]", "func":cmd_multipart, "argc":1}, |
1630 | 1630 |
{"cmd":"abortmp", "label":"abort a multipart upload", "param":"s3://BUCKET/OBJECT Id", "func":cmd_abort_multipart, "argc":2}, |
1631 |
+ {"cmd":"listmp", "label":"list parts of a multipart upload", "param":"s3://BUCKET/OBJECT Id", "func":cmd_list_multipart, "argc":2}, |
|
1631 | 1632 |
|
1632 | 1633 |
{"cmd":"accesslog", "label":"Enable/disable bucket access logging", "param":"s3://BUCKET", "func":cmd_accesslog, "argc":1}, |
1633 | 1634 |
{"cmd":"sign", "label":"Sign arbitrary string using the secret key", "param":"STRING-TO-SIGN", "func":cmd_sign, "argc":1}, |