diff --git a/appveyor.yml b/appveyor.yml index 4745f2ded..345788285 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -24,7 +24,7 @@ build_script: - curl -o ui-assets.go -L https://dl.minio.io/assets/server/%UI_ASSETS% - curl -o ui-assets.asc -L https://dl.minio.io/assets/server/%UI_ASSETS_ARMOR% - gpg --batch --no-tty --yes --keyserver pgp.mit.edu --recv-keys F9AAC728 - - gpg --batch --no-tty --verify %UI_ASSETS_ARMOR% %UI_ASSETS% + - gpg --batch --no-tty --verify %UI_ASSETS_ARMOR% %UI_ASSETS% - go test . - go test -race . - go test github.com/minio/minio/pkg... diff --git a/generic-handlers.go b/generic-handlers.go index 8709f1a74..998e11832 100644 --- a/generic-handlers.go +++ b/generic-handlers.go @@ -176,7 +176,7 @@ func setIgnoreResourcesHandler(h http.Handler) http.Handler { // Resource handler ServeHTTP() wrapper func (h resourceHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - // Skip the first element which is usally '/' and split the rest. + // Skip the first element which is usually '/' and split the rest. splits := strings.SplitN(r.URL.Path[1:], "/", 2) // Save bucketName and objectName extracted from url Path. diff --git a/pkg/fs/fs-bucket-listobjects.go b/pkg/fs/fs-bucket-listobjects.go index 6ba31e92f..a528d68e2 100644 --- a/pkg/fs/fs-bucket-listobjects.go +++ b/pkg/fs/fs-bucket-listobjects.go @@ -56,11 +56,11 @@ type listWorkerReq struct { respCh chan ListObjectsResult } -// listObjects - list objects lists objects upto maxKeys for a given prefix. +// listObjects - list objects lists objects up to maxKeys for a given prefix. func (fs Filesystem) listObjects(bucket, prefix, marker, delimiter string, maxKeys int) (chan<- listWorkerReq, *probe.Error) { quitWalker := make(chan bool) reqCh := make(chan listWorkerReq) - walkerCh := make(chan ObjectMetadata) + walkerCh := make(chan ObjectMetadata, 1000) go func() { defer close(walkerCh) var walkPath string @@ -144,8 +144,14 @@ func (fs Filesystem) listObjects(bucket, prefix, marker, delimiter string, maxKe for object := range walkerCh { // Verify if the object is lexically smaller than // the marker, we will skip those objects. - if marker >= object.Object { - continue + if marker != "" { + if marker >= object.Object { + continue + } else { + // Reset marker so that we avoid comparing + // again and again in a loop unecessarily. + marker = "" + } } if delimiter != "" { // Prefixes are only valid wth delimiters, and @@ -275,7 +281,7 @@ func (fs *Filesystem) listObjectsService() *probe.Error { return nil } -// ListObjects - lists all objects for a given prefix, returns upto +// ListObjects - lists all objects for a given prefix, returns up to // maxKeys number of objects per call. func (fs Filesystem) ListObjects(bucket, prefix, marker, delimiter string, maxKeys int) (ListObjectsResult, *probe.Error) { // Input validation. diff --git a/pkg/fs/signature.go b/pkg/fs/signature.go index e17783838..5ef933b94 100644 --- a/pkg/fs/signature.go +++ b/pkg/fs/signature.go @@ -346,7 +346,7 @@ func (r *Signature) DoesPresignedSignatureMatch() (bool, *probe.Error) { // - http://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html // returns true if matches, false otherwise. if error is not nil then it is always false func (r *Signature) DoesSignatureMatch(hashedPayload string) (bool, *probe.Error) { - // set new calulated payload + // set new calculated payload r.Request.Header.Set("X-Amz-Content-Sha256", hashedPayload) // Add date if not present throw error