@@ -32,18 +32,39 @@ import (
32
32
var (
33
33
mon = monkit .Package ()
34
34
35
- // ErrProjectUsageLimit is a custom error for when a user has reached their
36
- // Satellite project upload limit.
35
+ // ErrBandwidthLimitExceeded is a custom error for when a user has reached their
36
+ // Satellite bandwidth limit.
37
+ //
38
+ // Note: we went with 403 Forbidden over 509 Bandwidth Limit Exceeded, as 509
39
+ // is not an official status code and rarely used outside of Apache/cPanel.
40
+ // In this case though the user can solve it themselves by getting a
41
+ // limit increase, so it should be treated as a 4xx level error, not 5xx.
42
+ ErrBandwidthLimitExceeded = miniogo.ErrorResponse {
43
+ Code : "XStorjBandwidthLimitExceeded" ,
44
+ StatusCode : http .StatusForbidden ,
45
+ Message : "You have reached your Storj project bandwidth limit on the Satellite." ,
46
+ }
47
+
48
+ // ErrStorageLimitExceeded is a custom error for when a user has reached their
49
+ // Satellite storage limit.
37
50
//
38
51
// Note: we went with 403 Forbidden over 507 Insufficient Storage, as 507
39
52
// doesn't fit this case exactly. 507 is for when the server cannot
40
53
// physically store any further data, e.g. the disk has filled up. In this
41
54
// case though the user can solve this themselves by upgrading their plan,
42
55
// so it should be treated as a 4xx level error, not 5xx.
43
- ErrProjectUsageLimit = miniogo.ErrorResponse {
44
- Code : "XStorjProjectLimits" ,
56
+ ErrStorageLimitExceeded = miniogo.ErrorResponse {
57
+ Code : "XStorjStorageLimitExceeded" ,
58
+ StatusCode : http .StatusForbidden ,
59
+ Message : "You have reached your Storj project storage limit on the Satellite." ,
60
+ }
61
+
62
+ // ErrSegmentsLimitExceeded is a custom error for when a user has reached their
63
+ // Satellite segment limit.
64
+ ErrSegmentsLimitExceeded = miniogo.ErrorResponse {
65
+ Code : "XStorjSegmentsLimitExceeded" ,
45
66
StatusCode : http .StatusForbidden ,
46
- Message : "You have reached your Storj project upload limit on the Satellite." ,
67
+ Message : "You have reached your Storj project segment limit on the Satellite." ,
47
68
}
48
69
49
70
// ErrSlowDown is a custom error for when a user is exceeding Satellite
@@ -1096,7 +1117,11 @@ func convertError(err error, bucket, object string) error {
1096
1117
case errors .Is (err , uplink .ErrObjectNotFound ):
1097
1118
return minio.ObjectNotFound {Bucket : bucket , Object : object }
1098
1119
case errors .Is (err , uplink .ErrBandwidthLimitExceeded ):
1099
- return ErrProjectUsageLimit
1120
+ return ErrBandwidthLimitExceeded
1121
+ case errors .Is (err , uplink .ErrStorageLimitExceeded ):
1122
+ return ErrStorageLimitExceeded
1123
+ case errors .Is (err , uplink .ErrSegmentsLimitExceeded ):
1124
+ return ErrSegmentsLimitExceeded
1100
1125
case errors .Is (err , uplink .ErrPermissionDenied ):
1101
1126
return minio.PrefixAccessDenied {Bucket : bucket , Object : object }
1102
1127
case errors .Is (err , uplink .ErrTooManyRequests ):
0 commit comments