Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revert and bring back B2 gateway implementation (#7224)
This PR is simply a revert of 3265112 just for B2 gateway.
- Loading branch information
1 parent
b8955fe
commit 9f87283
Showing
12 changed files
with
2,658 additions
and
60 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
/* | ||
* Minio Cloud Storage, (C) 2017 Minio, Inc. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
package b2 | ||
|
||
import ( | ||
"fmt" | ||
"testing" | ||
|
||
b2 "github.com/minio/blazer/base" | ||
|
||
minio "github.com/minio/minio/cmd" | ||
) | ||
|
||
// Test b2 object error. | ||
func TestB2ObjectError(t *testing.T) { | ||
testCases := []struct { | ||
params []string | ||
b2Err error | ||
expectedErr error | ||
}{ | ||
{ | ||
[]string{}, nil, nil, | ||
}, | ||
{ | ||
[]string{}, fmt.Errorf("Not *Error"), fmt.Errorf("Not *Error"), | ||
}, | ||
{ | ||
[]string{}, fmt.Errorf("Non B2 Error"), fmt.Errorf("Non B2 Error"), | ||
}, | ||
{ | ||
[]string{"bucket"}, b2.Error{ | ||
StatusCode: 1, | ||
Code: "duplicate_bucket_name", | ||
}, minio.BucketAlreadyOwnedByYou{ | ||
Bucket: "bucket", | ||
}, | ||
}, | ||
{ | ||
[]string{"bucket"}, b2.Error{ | ||
StatusCode: 1, | ||
Code: "bad_request", | ||
}, minio.BucketNotFound{ | ||
Bucket: "bucket", | ||
}, | ||
}, | ||
{ | ||
[]string{"bucket", "object"}, b2.Error{ | ||
StatusCode: 1, | ||
Code: "bad_request", | ||
}, minio.ObjectNameInvalid{ | ||
Bucket: "bucket", | ||
Object: "object", | ||
}, | ||
}, | ||
{ | ||
[]string{"bucket"}, b2.Error{ | ||
StatusCode: 1, | ||
Code: "bad_bucket_id", | ||
}, minio.BucketNotFound{Bucket: "bucket"}, | ||
}, | ||
{ | ||
[]string{"bucket", "object"}, b2.Error{ | ||
StatusCode: 1, | ||
Code: "file_not_present", | ||
}, minio.ObjectNotFound{ | ||
Bucket: "bucket", | ||
Object: "object", | ||
}, | ||
}, | ||
{ | ||
[]string{"bucket", "object"}, b2.Error{ | ||
StatusCode: 1, | ||
Code: "not_found", | ||
}, minio.ObjectNotFound{ | ||
Bucket: "bucket", | ||
Object: "object", | ||
}, | ||
}, | ||
{ | ||
[]string{"bucket"}, b2.Error{ | ||
StatusCode: 1, | ||
Code: "cannot_delete_non_empty_bucket", | ||
}, minio.BucketNotEmpty{ | ||
Bucket: "bucket", | ||
}, | ||
}, | ||
{ | ||
[]string{"bucket", "object", "uploadID"}, b2.Error{ | ||
StatusCode: 1, | ||
Message: "No active upload for", | ||
}, minio.InvalidUploadID{ | ||
UploadID: "uploadID", | ||
}, | ||
}, | ||
} | ||
|
||
for i, testCase := range testCases { | ||
actualErr := b2ToObjectError(testCase.b2Err, testCase.params...) | ||
if actualErr != nil { | ||
if actualErr.Error() != testCase.expectedErr.Error() { | ||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.expectedErr, actualErr) | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# Minio B2 Gateway [![Slack](https://slack.minio.io/slack?type=svg)](https://slack.minio.io) | ||
Minio Gateway adds Amazon S3 compatibility to Backblaze B2 Cloud Storage. | ||
|
||
## Run Minio Gateway for Backblaze B2 Cloud Storage | ||
Please follow this [guide](https://www.backblaze.com/b2/docs/quick_account.html) to create an account on backblaze.com to obtain your access credentials for B2 Cloud storage. | ||
|
||
### Using Docker | ||
``` | ||
docker run -p 9000:9000 --name b2-s3 \ | ||
-e "MINIO_ACCESS_KEY=b2_account_id" \ | ||
-e "MINIO_SECRET_KEY=b2_application_key" \ | ||
minio/minio gateway b2 | ||
``` | ||
|
||
### Using Binary | ||
``` | ||
export MINIO_ACCESS_KEY=b2_account_id | ||
export MINIO_SECRET_KEY=b2_application_key | ||
minio gateway b2 | ||
``` | ||
|
||
## Test using Minio Browser | ||
Minio Gateway comes with an embedded web based object browser. Point your web browser to http://127.0.0.1:9000 to ensure that your server has started successfully. | ||
|
||
![Screenshot](https://raw.githubusercontent.com/minio/minio/master/docs/screenshots/minio-browser-gateway.png) | ||
|
||
## Test using Minio Client `mc` | ||
`mc` provides a modern alternative to UNIX commands such as ls, cat, cp, mirror, diff etc. It supports filesystems and Amazon S3 compatible cloud storage services. | ||
|
||
### Configure `mc` | ||
``` | ||
mc config host add myb2 http://gateway-ip:9000 b2_account_id b2_application_key | ||
``` | ||
|
||
### List buckets on Backblaze B2 | ||
``` | ||
mc ls myb2 | ||
[2017-02-22 01:50:43 PST] 0B ferenginar/ | ||
[2017-02-26 21:43:51 PST] 0B my-bucket/ | ||
[2017-02-26 22:10:11 PST] 0B test-bucket1/ | ||
``` | ||
|
||
### Known limitations | ||
Gateway inherits the following B2 limitations: | ||
|
||
- No support for CopyObject S3 API (There are no equivalent APIs available on Backblaze B2). | ||
- No support for CopyObjectPart S3 API (There are no equivalent APIs available on Backblaze B2). | ||
- Only read-only bucket policy supported at bucket level, all other variations will return API Notimplemented error. | ||
- DeleteObject() might not delete the object right away on Backblaze B2, so you might see the object immediately after a Delete request. | ||
|
||
Other limitations: | ||
|
||
- Bucket notification APIs are not supported. | ||
|
||
## Explore Further | ||
- [`mc` command-line interface](https://docs.minio.io/docs/minio-client-quickstart-guide) | ||
- [`aws` command-line interface](https://docs.minio.io/docs/aws-cli-with-minio) | ||
- [`minio-go` Go SDK](https://docs.minio.io/docs/golang-client-quickstart-guide) |
This file was deleted.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.