| 
									
										
										
										
											2015-02-24 08:46:48 +08:00
										 |  |  | /* | 
					
						
							| 
									
										
										
										
											2015-07-25 08:51:40 +08:00
										 |  |  |  * Minio Cloud Storage, (C) 2015 Minio, Inc. | 
					
						
							| 
									
										
										
										
											2015-02-24 08:46:48 +08:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  |  * you may not use this file except in compliance with the License. | 
					
						
							|  |  |  |  * You may obtain a copy of the License at | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  *     http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  |  * distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  |  * See the License for the specific language governing permissions and | 
					
						
							|  |  |  |  * limitations under the License. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-19 07:23:42 +08:00
										 |  |  | package cmd | 
					
						
							| 
									
										
										
										
											2015-02-16 09:03:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"net/url" | 
					
						
							|  |  |  | 	"strconv" | 
					
						
							| 
									
										
										
										
											2015-02-27 09:23:42 +08:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											2015-02-16 09:03:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
											
												objectAPI: Fix object API interface, remove unnecessary structs.
ObjectAPI changes.
```
ListObjects(bucket, prefix, marker, delimiter string, maxKeys int) (ListObjectsInfo, *probe.Error)
ListMultipartUploads(bucket, objectPrefix, keyMarker, uploadIDMarker, delimiter string, maxUploads int) (ListMultipartsInfo, *probe.Error)
ListObjectParts(bucket, object, uploadID string, partNumberMarker, maxParts int) (ListPartsInfo, *probe.Error)
CompleteMultipartUpload(bucket string, object string, uploadID string, parts []completePart) (ObjectInfo, *probe.Error)
```
											
										 
											2016-04-03 16:34:20 +08:00
										 |  |  | // Parse bucket url queries
 | 
					
						
							| 
									
										
										
										
											2016-06-01 13:10:55 +08:00
										 |  |  | func getListObjectsV1Args(values url.Values) (prefix, marker, delimiter string, maxkeys int, encodingType string) { | 
					
						
							|  |  |  | 	prefix = values.Get("prefix") | 
					
						
							|  |  |  | 	marker = values.Get("marker") | 
					
						
							|  |  |  | 	delimiter = values.Get("delimiter") | 
					
						
							|  |  |  | 	if values.Get("max-keys") != "" { | 
					
						
							|  |  |  | 		maxkeys, _ = strconv.Atoi(values.Get("max-keys")) | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		maxkeys = maxObjectList | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	encodingType = values.Get("encoding-type") | 
					
						
							|  |  |  | 	return | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Parse bucket url queries for ListObjects V2.
 | 
					
						
							| 
									
										
										
										
											2016-09-11 01:44:38 +08:00
										 |  |  | func getListObjectsV2Args(values url.Values) (prefix, token, startAfter, delimiter string, fetchOwner bool, maxkeys int, encodingType string) { | 
					
						
							| 
									
										
										
										
											2016-06-01 13:10:55 +08:00
										 |  |  | 	prefix = values.Get("prefix") | 
					
						
							|  |  |  | 	startAfter = values.Get("start-after") | 
					
						
							|  |  |  | 	delimiter = values.Get("delimiter") | 
					
						
							|  |  |  | 	if values.Get("max-keys") != "" { | 
					
						
							|  |  |  | 		maxkeys, _ = strconv.Atoi(values.Get("max-keys")) | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		maxkeys = maxObjectList | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	encodingType = values.Get("encoding-type") | 
					
						
							|  |  |  | 	token = values.Get("continuation-token") | 
					
						
							| 
									
										
										
										
											2016-09-11 01:44:38 +08:00
										 |  |  | 	if values.Get("fetch-owner") == "true" { | 
					
						
							|  |  |  | 		fetchOwner = true | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2016-06-01 13:10:55 +08:00
										 |  |  | 	return | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
											
												objectAPI: Fix object API interface, remove unnecessary structs.
ObjectAPI changes.
```
ListObjects(bucket, prefix, marker, delimiter string, maxKeys int) (ListObjectsInfo, *probe.Error)
ListMultipartUploads(bucket, objectPrefix, keyMarker, uploadIDMarker, delimiter string, maxUploads int) (ListMultipartsInfo, *probe.Error)
ListObjectParts(bucket, object, uploadID string, partNumberMarker, maxParts int) (ListPartsInfo, *probe.Error)
CompleteMultipartUpload(bucket string, object string, uploadID string, parts []completePart) (ObjectInfo, *probe.Error)
```
											
										 
											2016-04-03 16:34:20 +08:00
										 |  |  | // Parse bucket url queries for ?uploads
 | 
					
						
							|  |  |  | func getBucketMultipartResources(values url.Values) (prefix, keyMarker, uploadIDMarker, delimiter string, maxUploads int, encodingType string) { | 
					
						
							|  |  |  | 	prefix = values.Get("prefix") | 
					
						
							|  |  |  | 	keyMarker = values.Get("key-marker") | 
					
						
							|  |  |  | 	uploadIDMarker = values.Get("upload-id-marker") | 
					
						
							|  |  |  | 	delimiter = values.Get("delimiter") | 
					
						
							| 
									
										
										
										
											2016-04-05 10:55:07 +08:00
										 |  |  | 	if values.Get("max-uploads") != "" { | 
					
						
							|  |  |  | 		maxUploads, _ = strconv.Atoi(values.Get("max-uploads")) | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		maxUploads = maxUploadsList | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
											
												objectAPI: Fix object API interface, remove unnecessary structs.
ObjectAPI changes.
```
ListObjects(bucket, prefix, marker, delimiter string, maxKeys int) (ListObjectsInfo, *probe.Error)
ListMultipartUploads(bucket, objectPrefix, keyMarker, uploadIDMarker, delimiter string, maxUploads int) (ListMultipartsInfo, *probe.Error)
ListObjectParts(bucket, object, uploadID string, partNumberMarker, maxParts int) (ListPartsInfo, *probe.Error)
CompleteMultipartUpload(bucket string, object string, uploadID string, parts []completePart) (ObjectInfo, *probe.Error)
```
											
										 
											2016-04-03 16:34:20 +08:00
										 |  |  | 	encodingType = values.Get("encoding-type") | 
					
						
							| 
									
										
										
										
											2015-05-15 05:36:41 +08:00
										 |  |  | 	return | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
											
												objectAPI: Fix object API interface, remove unnecessary structs.
ObjectAPI changes.
```
ListObjects(bucket, prefix, marker, delimiter string, maxKeys int) (ListObjectsInfo, *probe.Error)
ListMultipartUploads(bucket, objectPrefix, keyMarker, uploadIDMarker, delimiter string, maxUploads int) (ListMultipartsInfo, *probe.Error)
ListObjectParts(bucket, object, uploadID string, partNumberMarker, maxParts int) (ListPartsInfo, *probe.Error)
CompleteMultipartUpload(bucket string, object string, uploadID string, parts []completePart) (ObjectInfo, *probe.Error)
```
											
										 
											2016-04-03 16:34:20 +08:00
										 |  |  | // Parse object url queries
 | 
					
						
							|  |  |  | func getObjectResources(values url.Values) (uploadID string, partNumberMarker, maxParts int, encodingType string) { | 
					
						
							|  |  |  | 	uploadID = values.Get("uploadId") | 
					
						
							|  |  |  | 	partNumberMarker, _ = strconv.Atoi(values.Get("part-number-marker")) | 
					
						
							| 
									
										
										
										
											2016-04-05 10:55:07 +08:00
										 |  |  | 	if values.Get("max-parts") != "" { | 
					
						
							|  |  |  | 		maxParts, _ = strconv.Atoi(values.Get("max-parts")) | 
					
						
							|  |  |  | 	} else { | 
					
						
							|  |  |  | 		maxParts = maxPartsList | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
											
												objectAPI: Fix object API interface, remove unnecessary structs.
ObjectAPI changes.
```
ListObjects(bucket, prefix, marker, delimiter string, maxKeys int) (ListObjectsInfo, *probe.Error)
ListMultipartUploads(bucket, objectPrefix, keyMarker, uploadIDMarker, delimiter string, maxUploads int) (ListMultipartsInfo, *probe.Error)
ListObjectParts(bucket, object, uploadID string, partNumberMarker, maxParts int) (ListPartsInfo, *probe.Error)
CompleteMultipartUpload(bucket string, object string, uploadID string, parts []completePart) (ObjectInfo, *probe.Error)
```
											
										 
											2016-04-03 16:34:20 +08:00
										 |  |  | 	encodingType = values.Get("encoding-type") | 
					
						
							| 
									
										
										
										
											2015-05-10 02:41:26 +08:00
										 |  |  | 	return | 
					
						
							|  |  |  | } |