Browse code

add listmp

UENISHI Kota authored on 2013/03/18 12:42:57
Showing 2 changed files
... ...
@@ -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},