mirror of https://github.com/restic/restic.git
Ignore s3 AccessDenied error, during creation of repository
This commit is contained in:
parent
ab7a3a803d
commit
5873ab4031
|
@ -104,6 +104,12 @@ func Create(cfg Config, rt http.RoundTripper) (restic.Backend, error) {
|
|||
return nil, errors.Wrap(err, "open")
|
||||
}
|
||||
found, err := be.client.BucketExists(cfg.Bucket)
|
||||
|
||||
if err != nil && be.IsAccessDenied(err) {
|
||||
err = nil
|
||||
found = true
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
debug.Log("BucketExists(%v) returned err %v", cfg.Bucket, err)
|
||||
return nil, errors.Wrap(err, "client.BucketExists")
|
||||
|
@ -120,6 +126,17 @@ func Create(cfg Config, rt http.RoundTripper) (restic.Backend, error) {
|
|||
return be, nil
|
||||
}
|
||||
|
||||
// IsAccessDenied returns true if the error is caused by Access Denied.
|
||||
func (be *Backend) IsAccessDenied(err error) bool {
|
||||
debug.Log("IsAccessDenied(%T, %#v)", err, err)
|
||||
|
||||
if e, ok := errors.Cause(err).(minio.ErrorResponse); ok && e.Code == "AccessDenied" {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// IsNotExist returns true if the error is caused by a not existing file.
|
||||
func (be *Backend) IsNotExist(err error) bool {
|
||||
debug.Log("IsNotExist(%T, %#v)", err, err)
|
||||
|
|
Loading…
Reference in New Issue