| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package s3api
- import (
- "github.com/seaweedfs/seaweedfs/weed/glog"
- "github.com/seaweedfs/seaweedfs/weed/s3api/s3err"
- )
- // ErrorHandlers provide common error handling patterns for S3 API operations
- // handlePutToFilerError logs an error and returns the standard putToFiler error format
- func handlePutToFilerError(operation string, err error, errorCode s3err.ErrorCode) (string, s3err.ErrorCode, string) {
- glog.Errorf("Failed to %s: %v", operation, err)
- return "", errorCode, ""
- }
- // handlePutToFilerInternalError is a convenience wrapper for internal errors in putToFiler
- func handlePutToFilerInternalError(operation string, err error) (string, s3err.ErrorCode, string) {
- return handlePutToFilerError(operation, err, s3err.ErrInternalError)
- }
- // handleMultipartError logs an error and returns the standard multipart error format
- func handleMultipartError(operation string, err error, errorCode s3err.ErrorCode) (interface{}, s3err.ErrorCode) {
- glog.Errorf("Failed to %s: %v", operation, err)
- return nil, errorCode
- }
- // handleMultipartInternalError is a convenience wrapper for internal errors in multipart operations
- func handleMultipartInternalError(operation string, err error) (interface{}, s3err.ErrorCode) {
- return handleMultipartError(operation, err, s3err.ErrInternalError)
- }
- // logErrorAndReturn logs an error with operation context and returns the specified error code
- func logErrorAndReturn(operation string, err error, errorCode s3err.ErrorCode) s3err.ErrorCode {
- glog.Errorf("Failed to %s: %v", operation, err)
- return errorCode
- }
- // logInternalError is a convenience wrapper for internal error logging
- func logInternalError(operation string, err error) s3err.ErrorCode {
- return logErrorAndReturn(operation, err, s3err.ErrInternalError)
- }
- // SSE-specific error handlers
- // handleSSEError handles common SSE-related errors with appropriate context
- func handleSSEError(sseType string, operation string, err error, errorCode s3err.ErrorCode) (string, s3err.ErrorCode, string) {
- glog.Errorf("Failed to %s for %s: %v", operation, sseType, err)
- return "", errorCode, ""
- }
- // handleSSEInternalError is a convenience wrapper for SSE internal errors
- func handleSSEInternalError(sseType string, operation string, err error) (string, s3err.ErrorCode, string) {
- return handleSSEError(sseType, operation, err, s3err.ErrInternalError)
- }
|