diff --git a/pkg/fileservice/aliyun_sdk.go b/pkg/fileservice/aliyun_sdk.go index f1389b421c0f6..8df54a7d2ab31 100644 --- a/pkg/fileservice/aliyun_sdk.go +++ b/pkg/fileservice/aliyun_sdk.go @@ -226,7 +226,7 @@ func (a *AliyunSDK) Exists( if a.is404(err) { return false, nil } - return false, err + return false, wrapError("AliyunSDK.Exists", err) } return true, nil diff --git a/pkg/fileservice/aws_sdk_v2.go b/pkg/fileservice/aws_sdk_v2.go index 413a794c0f47a..e20afc820eb8d 100644 --- a/pkg/fileservice/aws_sdk_v2.go +++ b/pkg/fileservice/aws_sdk_v2.go @@ -309,7 +309,7 @@ func (a *AwsSDKv2) Exists( return false, nil } } - return false, err + return false, wrapError("AwsSDKv2.Exists", err) } return output != nil, nil } diff --git a/pkg/fileservice/disk_object_storage.go b/pkg/fileservice/disk_object_storage.go index e2ba7d2277af0..fe7e2696c576a 100644 --- a/pkg/fileservice/disk_object_storage.go +++ b/pkg/fileservice/disk_object_storage.go @@ -95,7 +95,7 @@ func (d *diskObjectStorage) Exists(ctx context.Context, key string) (bool, error if os.IsNotExist(err) { return false, nil } - return false, err + return false, wrapError("diskObjectStorage.Exists", err) } return true, nil } diff --git a/pkg/fileservice/error.go b/pkg/fileservice/error.go index 076fef5134e0e..1ba34eefdb589 100644 --- a/pkg/fileservice/error.go +++ b/pkg/fileservice/error.go @@ -110,3 +110,25 @@ func isDiskFull(err error) bool { str := err.Error() return strings.Contains(str, "disk quota exceeded") } + +type errorWrap struct { + what string + err error +} + +var _ error = errorWrap{} + +func (e errorWrap) Error() string { + return e.what + ": " + e.err.Error() +} + +func (e errorWrap) Unwrap() error { + return e.err +} + +func wrapError(what string, err error) errorWrap { + return errorWrap{ + what: what, + err: err, + } +} diff --git a/pkg/fileservice/minio_sdk.go b/pkg/fileservice/minio_sdk.go index 9d53d13b27424..e1f48a52fcc3e 100644 --- a/pkg/fileservice/minio_sdk.go +++ b/pkg/fileservice/minio_sdk.go @@ -312,7 +312,7 @@ func (a *MinioSDK) Exists( if a.is404(err) { return false, nil } - return false, err + return false, wrapError("MinioSDK.Exists", err) } return true, nil diff --git a/pkg/fileservice/qcloud_sdk.go b/pkg/fileservice/qcloud_sdk.go index 008806f8b609a..b7ed42b57b4f2 100644 --- a/pkg/fileservice/qcloud_sdk.go +++ b/pkg/fileservice/qcloud_sdk.go @@ -229,7 +229,7 @@ func (a *QCloudSDK) Exists( if a.is404(err) { return false, nil } - return false, err + return false, wrapError("QCloudSDK.Exists", err) } return true, nil