2017-06-23 05:59:28 |
Saurabh jangir |
description |
As the same object is already uploaded, PUT requests are not required for the second time onwards as this will only increase the overhead.
Process flow from the second time onwards:
1. HEAD request to check the existence of the object being uploaded and its properties (header information) (HTTP status code 200 is returned.)
2. GET request to get the manifest file.
3. A series of HEAD requests for the newly made container where the segments are uploaded in the prior request.
4. PUT request to upload segments and manifest file.
As a result of 4, because the uploaded information is exactly the same as that of the previous upload, PUT requests need not be made again |
As the same object is already uploaded, PUT requests are not required for the second time onwards as this will only increase the overhead.
Process flow from the second time onwards:
1. HEAD request to check the existence of the object being uploaded and its properties (header information) (HTTP status code 200 is returned.)
2. GET request to get the manifest file.
3. A series of HEAD requests for the newly made container where the segments are uploaded in the prior request.
4. PUT request to upload segments and manifest file.
As a result of 4, because the uploaded information is exactly the same as that of the previous upload, PUT requests need not be made again.
Suggested Solution:
Changes must be done in design to add private method in file /swift/account/server.py that will be called from GET method of same file and implement a check that would prevent duplicate upload if the information that GET request retrieves is same as the already uploaded object. Also changes are required in _update_or_create() method of /swift/container/server.py to prevent duplicate upload. |
|