mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-09-20 08:57:57 +08:00
55 lines
2.3 KiB
Go
55 lines
2.3 KiB
Go
![]() |
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)
|
||
|
}
|