/* * Minio Cloud Storage, (C) 2015 Minio, Inc. * * 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. */ package cmd import ( "net/url" "strconv" ) // Parse bucket url queries 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. func getListObjectsV2Args(values url.Values) (prefix, token, startAfter, delimiter string, fetchOwner bool, maxkeys int, encodingType string) { prefix = values.Get("prefix") token = values.Get("continuation-token") startAfter = values.Get("start-after") delimiter = values.Get("delimiter") if values.Get("max-keys") != "" { maxkeys, _ = strconv.Atoi(values.Get("max-keys")) } else { maxkeys = maxObjectList } fetchOwner = values.Get("fetch-owner") == "true" encodingType = values.Get("encoding-type") return } // 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") if values.Get("max-uploads") != "" { maxUploads, _ = strconv.Atoi(values.Get("max-uploads")) } else { maxUploads = maxUploadsList } encodingType = values.Get("encoding-type") return } // 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")) if values.Get("max-parts") != "" { maxParts, _ = strconv.Atoi(values.Get("max-parts")) } else { maxParts = maxPartsList } encodingType = values.Get("encoding-type") return } // Parse listen bucket notification resources. func getListenBucketNotificationResources(values url.Values) (prefix []string, suffix []string, events []string) { prefix = values["prefix"] suffix = values["suffix"] events = values["events"] return prefix, suffix, events } // Validates filter values func validateFilterValues(values []string) (err APIErrorCode) { for _, value := range values { if !IsValidObjectPrefix(value) { return ErrFilterValueInvalid } } return ErrNone }