Skip to content

Commit 87aa48b

Browse files
committed
fix oss ossToObjectError
1 parent 8135d3a commit 87aa48b

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

cmd/gateway/oss/gateway-oss.go

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -309,11 +309,7 @@ func ossToObjectError(err error, params ...string) error {
309309
case "NoSuchBucket":
310310
err = minio.BucketNotFound{Bucket: bucket}
311311
case "NoSuchKey":
312-
if object != "" {
313-
err = minio.ObjectNotFound{Bucket: bucket, Object: object}
314-
} else {
315-
err = minio.BucketNotFound{Bucket: bucket}
316-
}
312+
err = notFoundErr(ossErr, bucket, object)
317313
case "InvalidObjectName":
318314
err = minio.ObjectNameInvalid{Bucket: bucket, Object: object}
319315
case "AccessDenied":
@@ -326,11 +322,29 @@ func ossToObjectError(err error, params ...string) error {
326322
err = minio.SignatureDoesNotMatch{}
327323
case "InvalidPart":
328324
err = minio.InvalidPart{}
325+
default:
326+
if er := notFoundErr(ossErr, bucket, object); er != nil {
327+
err = er
328+
}
329329
}
330330

331331
return err
332332
}
333333

334+
func notFoundErr(ossErr oss.ServiceError, bucket, object string) (err error) {
335+
if ossErr.StatusCode == http.StatusNotFound && ossErr.Code == "" {
336+
ossErr.Code = "NoSuchKey"
337+
}
338+
if ossErr.Code == "NoSuchKey" {
339+
if object != "" {
340+
err = minio.ObjectNotFound{Bucket: bucket, Object: object}
341+
} else {
342+
err = minio.BucketNotFound{Bucket: bucket}
343+
}
344+
}
345+
return err
346+
}
347+
334348
// ossObjects implements gateway for Aliyun Object Storage Service.
335349
type ossObjects struct {
336350
minio.GatewayUnsupported

0 commit comments

Comments
 (0)