backend/fs: Refactor multipart upload

This patch modifies multipart upload related functions as below

* New multipart upload call creates file
  EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.uploadid

* Put object part call creates file
  EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.PART_NUMBER.MD5SUM_STRING

* Abort multipart call removes all files matching
  EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.*

* Complete multipart call does
  1. creates a staging file
  EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.complete.TEMP_NAME
  then renames to
  EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.complete
  2. rename staging file
  EXPORT_DIR/.minio/BUCKET/PATH/TO/OBJECT/UPLOAD_ID.complete
  to EXPORT_DIR/BUCKET/PATH/TO/OBJECT
This commit is contained in:
Bala.FA
2016-03-28 22:22:09 +05:30
parent c69fdf0cf2
commit 083e4e9479
7 changed files with 1304 additions and 536 deletions
+8 -1
View File
@@ -107,6 +107,12 @@
"revision": "eb527c8097e0f19a3ff7b253a3fe70545070f420",
"revisionTime": "2015-08-29T22:34:20-07:00"
},
{
"checksumSHA1": "u0hXGADM3JDza8YjgiyNJpAJk8g=",
"path": "github.com/skyrings/skyring-common/tools/uuid",
"revision": "762fd2bfc12e766d90478d638255981ab1966a3d",
"revisionTime": "2016-03-24T19:44:43+05:30"
},
{
"path": "golang.org/x/crypto/bcrypt",
"revision": "7b85b097bf7527677d54d3220065e966a0e3b613",
@@ -122,5 +128,6 @@
"revision": "11d3bc7aa68e238947792f30573146a3231fc0f1",
"revisionTime": "2015-07-29T10:04:31+02:00"
}
]
],
"rootPath": "github.com/minio/minio"
}