Name | b2 JSON |
Version |
4.1.0
JSON |
| download |
home_page | None |
Summary | Command Line Tool for Backblaze B2 |
upload_time | 2024-07-30 22:18:28 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.7 |
license | MIT |
keywords |
backblaze
b2
cloud
storage
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# B2 Command Line Tool
[![CI](https://github.com/Backblaze/B2_Command_Line_Tool/actions/workflows/ci.yml/badge.svg)](https://github.com/Backblaze/B2_Command_Line_Tool/actions/workflows/ci.yml) [![License](https://img.shields.io/pypi/l/b2.svg?label=License)](https://pypi.python.org/pypi/b2) [![python versions](https://img.shields.io/pypi/pyversions/b2.svg?label=python%20versions)](https://pypi.python.org/pypi/b2) [![PyPI version](https://img.shields.io/pypi/v/b2.svg?label=PyPI%20version)](https://pypi.python.org/pypi/b2) [![Docs](https://readthedocs.org/projects/b2-command-line-tool/badge/?version=master)](https://b2-command-line-tool.readthedocs.io/en/master/?badge=master)
The command-line tool that gives easy access to all of the capabilities of B2 Cloud Storage.
This program provides command-line access to the B2 service.
## Documentation
The latest documentation is available on [Read the Docs](https://b2-command-line-tool.readthedocs.io/).
## Installation
For detailed instructions on how to install the command line tool see our [quick start guide](https://www.backblaze.com/b2/docs/quick_command_line.html).
### Homebrew
[Homebrew](https://brew.sh/) is widely used in the Mac community, particularly amongst developers. We recommend using the [B2 CLI Homebrew](https://formulae.brew.sh/formula/b2-tools) formula as the quickest setup method for Mac users:
```bash
brew install b2-tools
```
### Binaries
Stand-alone binaries are available for Linux and Windows; this is the most straightforward way to use the command-line tool and is sufficient in most use cases. The latest versions are available for download from the [Releases page](https://github.com/Backblaze/B2_Command_Line_Tool/releases).
### Python Package Index
You can also install it in your Python environment ([virtualenv](https://pypi.org/project/virtualenv/) is recommended) from PyPI with:
```bash
pip install b2[full]
```
The extra dependencies improve debugging experience and, potentially, performance of `b2` CLI, but are not strictly required.
You can install the `b2` without them:
```bash
pip install b2
```
### Docker
For a truly platform independent solution, use the official docker image:
```bash
docker run backblazeit/b2:latest ...
```
See examples in [Usage/Docker image](#docker-image)
### Installing from source
Not recommended, unless you want to check if a current pre-release code solves a bug affecting you.
```bash
pip install git+https://github.com/Backblaze/B2_Command_Line_Tool.git
```
If you wish to contribute to or otherwise modify source code, please see our [contributing guidelines](CONTRIBUTING.md).
## Usage
```
b2 account Account management subcommands.
b2 bucket Bucket management subcommands.
b2 file File management subcommands.
b2 install-autocomplete Install autocomplete for supported shells.
b2 key Application keys management subcommands.
b2 license Print the license information for this tool.
b2 ls List files in a given folder.
b2 replication Replication rule management subcommands.
b2 rm Remove a "folder" or a set of files matching a pattern.
b2 sync Copy multiple files from source to destination.
b2 version Print the version number of this tool.
```
The environment variable `B2_ACCOUNT_INFO` specifies the SQLite
file to use for caching authentication information.
The default file to use is: `~/.b2_account_info`.
To get more details on a specific command use `b2 <command> --help`.
When authorizing with application keys, this tool requires that the key
have the `listBuckets` capability so that it can take the bucket names
you provide on the command line and translate them into bucket IDs for the
B2 Storage service. Each different command may required additional
capabilities. You can find the details for each command in the help for
that command.
### Docker image
Thanks to [ApiVer methodology](#apiver-cli-versions-b2-vs-b2v3-b2v4-etc),
you should be perfectly fine using `b2:latest` version even in long-term support scripts,
but make sure to explicitly use `b2v4` command from the docker image as shown below.
#### Authorization
User can either authorize on each command (`bucket list` is just a example here)
```bash
B2_APPLICATION_KEY=<key> B2_APPLICATION_KEY_ID=<key-id> docker run --rm -e B2_APPLICATION_KEY -e B2_APPLICATION_KEY_ID backblazeit/b2:latest b2v4 bucket list
```
or authorize once and keep the credentials persisted:
```bash
docker run --rm -it -v b2:/root backblazeit/b2:latest b2v4 account authorize
docker run --rm -v b2:/root backblazeit/b2:latest b2v4 bucket list # remember to include `-v` - authorization details are there
```
#### Downloading and uploading
When uploading a single file, data can be passed to the container via a pipe:
```bash
cat source_file.txt | docker run -i --rm -v b2:/root backblazeit/b2:latest b2v4 upload-unbound-stream bucket_name - target_file_name
```
or by mounting local files in the docker container:
```bash
docker run --rm -v b2:/root -v /home/user/path/to/data:/data backblazeit/b2:latest b2v4 file upload bucket_name /data/source_file.txt target_file_name
```
## ApiVer CLI versions (`b2` vs `b2v3`, `b2v4`, etc.)
Summary:
* in terminal, for best UX, use the latest apiver interface provided by `b2` command
* for long-term support, i.e. in scripts, use `b2v4` command
Explanation:
We use the `ApiVer` methodology so we can continue to evolve the `b2` command line tool,
while also providing all the bugfixes to the old interface versions.
If you use the `b2` command, you're working with the latest stable interface.
It provides all the bells and whistles, latest features, and the best performance.
While it's a great version to work with directly, but when writing a reliable, long-running script,
you want to ensure that your script won't break when we release a new version of the `b2` command.
In that case instead of using the `b2` command, you should use a version-bound interface e.g.: `b2v4`.
This command will always provide the same ApiVer 3 interface, regardless of the semantic version of the `b2` command.
Even if the `b2` command goes into the ApiVer `4`, `6` or even `10` with some major changes,
`b2v4` will still provide the same interface, same commands, and same parameters, with all the security and bug fixes.
Over time, it might get slower as we may need to emulate some older behaviors, but we'll ensure that it won't break.
You may find the next interface under `_b2v5`, but please note, as suggested by `_` prefix,
it is not yet stable and is not yet covered by guarantees listed above.
## Contrib
### Detailed logs
Verbose logs to stdout can be enabled with the `--verbose` flag.
A hidden flag `--debug-logs` can be used to enable logging to a `b2_cli.log` file (with log rotation at midnight) in current working directory. Please pay attention not to launch the tool from the directory that you are syncing, or the logs will get synced to the remote server (unless that is really what you want to achieve).
For advanced users, a hidden option `--log-config <filename.ini>` can be used to enable logging in a user-defined format and verbosity. Check out the [example log configuration](contrib/debug_logs.ini).
## Release History
Please refer to the [changelog](CHANGELOG.md).
## Developer Info
Please see our [contributing guidelines](CONTRIBUTING.md).
Raw data
{
"_id": null,
"home_page": null,
"name": "b2",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "backblaze b2 cloud storage",
"author": null,
"author_email": "Backblaze Inc <support@backblaze.com>",
"download_url": "https://files.pythonhosted.org/packages/4c/43/4b5704ff889734bca6b8597a6acd324cc0caacc36eb26583f13444c0c61c/b2-4.1.0.tar.gz",
"platform": null,
"description": "# B2 Command Line Tool\n\n[![CI](https://github.com/Backblaze/B2_Command_Line_Tool/actions/workflows/ci.yml/badge.svg)](https://github.com/Backblaze/B2_Command_Line_Tool/actions/workflows/ci.yml) [![License](https://img.shields.io/pypi/l/b2.svg?label=License)](https://pypi.python.org/pypi/b2) [![python versions](https://img.shields.io/pypi/pyversions/b2.svg?label=python%20versions)](https://pypi.python.org/pypi/b2) [![PyPI version](https://img.shields.io/pypi/v/b2.svg?label=PyPI%20version)](https://pypi.python.org/pypi/b2) [![Docs](https://readthedocs.org/projects/b2-command-line-tool/badge/?version=master)](https://b2-command-line-tool.readthedocs.io/en/master/?badge=master)\n\nThe command-line tool that gives easy access to all of the capabilities of B2 Cloud Storage.\n\nThis program provides command-line access to the B2 service.\n\n## Documentation\n\nThe latest documentation is available on [Read the Docs](https://b2-command-line-tool.readthedocs.io/).\n\n## Installation\n\nFor detailed instructions on how to install the command line tool see our [quick start guide](https://www.backblaze.com/b2/docs/quick_command_line.html).\n\n### Homebrew\n\n[Homebrew](https://brew.sh/) is widely used in the Mac community, particularly amongst developers. We recommend using the [B2 CLI Homebrew](https://formulae.brew.sh/formula/b2-tools) formula as the quickest setup method for Mac users:\n\n```bash\nbrew install b2-tools\n```\n\n### Binaries\n\nStand-alone binaries are available for Linux and Windows; this is the most straightforward way to use the command-line tool and is sufficient in most use cases. The latest versions are available for download from the [Releases page](https://github.com/Backblaze/B2_Command_Line_Tool/releases).\n\n### Python Package Index\n\nYou can also install it in your Python environment ([virtualenv](https://pypi.org/project/virtualenv/) is recommended) from PyPI with:\n\n```bash\npip install b2[full]\n```\n\nThe extra dependencies improve debugging experience and, potentially, performance of `b2` CLI, but are not strictly required.\nYou can install the `b2` without them:\n\n```bash\n pip install b2\n```\n\n### Docker\n\nFor a truly platform independent solution, use the official docker image: \n\n```bash\ndocker run backblazeit/b2:latest ...\n```\n\nSee examples in [Usage/Docker image](#docker-image)\n\n### Installing from source\n\nNot recommended, unless you want to check if a current pre-release code solves a bug affecting you.\n\n```bash\npip install git+https://github.com/Backblaze/B2_Command_Line_Tool.git\n```\n\nIf you wish to contribute to or otherwise modify source code, please see our [contributing guidelines](CONTRIBUTING.md).\n\n## Usage\n\n```\nb2 account Account management subcommands.\nb2 bucket Bucket management subcommands.\nb2 file File management subcommands.\nb2 install-autocomplete Install autocomplete for supported shells.\nb2 key Application keys management subcommands.\nb2 license Print the license information for this tool.\nb2 ls List files in a given folder.\nb2 replication Replication rule management subcommands.\nb2 rm Remove a \"folder\" or a set of files matching a pattern.\nb2 sync Copy multiple files from source to destination.\nb2 version Print the version number of this tool.\n```\n\nThe environment variable `B2_ACCOUNT_INFO` specifies the SQLite\nfile to use for caching authentication information.\nThe default file to use is: `~/.b2_account_info`.\n\nTo get more details on a specific command use `b2 <command> --help`.\n\nWhen authorizing with application keys, this tool requires that the key\nhave the `listBuckets` capability so that it can take the bucket names\nyou provide on the command line and translate them into bucket IDs for the\nB2 Storage service. Each different command may required additional\ncapabilities. You can find the details for each command in the help for\nthat command.\n\n### Docker image\n\nThanks to [ApiVer methodology](#apiver-cli-versions-b2-vs-b2v3-b2v4-etc),\nyou should be perfectly fine using `b2:latest` version even in long-term support scripts,\nbut make sure to explicitly use `b2v4` command from the docker image as shown below.\n\n#### Authorization\n\nUser can either authorize on each command (`bucket list` is just a example here)\n\n```bash\nB2_APPLICATION_KEY=<key> B2_APPLICATION_KEY_ID=<key-id> docker run --rm -e B2_APPLICATION_KEY -e B2_APPLICATION_KEY_ID backblazeit/b2:latest b2v4 bucket list\n```\n\nor authorize once and keep the credentials persisted:\n\n```bash\ndocker run --rm -it -v b2:/root backblazeit/b2:latest b2v4 account authorize\ndocker run --rm -v b2:/root backblazeit/b2:latest b2v4 bucket list # remember to include `-v` - authorization details are there\n```\n\n#### Downloading and uploading\n\nWhen uploading a single file, data can be passed to the container via a pipe:\n\n```bash\ncat source_file.txt | docker run -i --rm -v b2:/root backblazeit/b2:latest b2v4 upload-unbound-stream bucket_name - target_file_name\n```\n\nor by mounting local files in the docker container:\n\n```bash\ndocker run --rm -v b2:/root -v /home/user/path/to/data:/data backblazeit/b2:latest b2v4 file upload bucket_name /data/source_file.txt target_file_name\n```\n\n## ApiVer CLI versions (`b2` vs `b2v3`, `b2v4`, etc.)\n\nSummary:\n\n* in terminal, for best UX, use the latest apiver interface provided by `b2` command\n* for long-term support, i.e. in scripts, use `b2v4` command\n\nExplanation:\n\nWe use the `ApiVer` methodology so we can continue to evolve the `b2` command line tool,\nwhile also providing all the bugfixes to the old interface versions.\n\nIf you use the `b2` command, you're working with the latest stable interface.\nIt provides all the bells and whistles, latest features, and the best performance.\nWhile it's a great version to work with directly, but when writing a reliable, long-running script,\nyou want to ensure that your script won't break when we release a new version of the `b2` command.\n\nIn that case instead of using the `b2` command, you should use a version-bound interface e.g.: `b2v4`.\nThis command will always provide the same ApiVer 3 interface, regardless of the semantic version of the `b2` command.\nEven if the `b2` command goes into the ApiVer `4`, `6` or even `10` with some major changes,\n`b2v4` will still provide the same interface, same commands, and same parameters, with all the security and bug fixes.\nOver time, it might get slower as we may need to emulate some older behaviors, but we'll ensure that it won't break.\n\nYou may find the next interface under `_b2v5`, but please note, as suggested by `_` prefix,\nit is not yet stable and is not yet covered by guarantees listed above.\n\n## Contrib\n\n### Detailed logs\n\nVerbose logs to stdout can be enabled with the `--verbose` flag.\n\nA hidden flag `--debug-logs` can be used to enable logging to a `b2_cli.log` file (with log rotation at midnight) in current working directory. Please pay attention not to launch the tool from the directory that you are syncing, or the logs will get synced to the remote server (unless that is really what you want to achieve).\n\nFor advanced users, a hidden option `--log-config <filename.ini>` can be used to enable logging in a user-defined format and verbosity. Check out the [example log configuration](contrib/debug_logs.ini).\n\n## Release History\n\nPlease refer to the [changelog](CHANGELOG.md).\n\n## Developer Info\n\nPlease see our [contributing guidelines](CONTRIBUTING.md).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Command Line Tool for Backblaze B2",
"version": "4.1.0",
"project_urls": {
"Homepage": "https://github.com/Backblaze/B2_Command_Line_Tool"
},
"split_keywords": [
"backblaze",
"b2",
"cloud",
"storage"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2018e1ada0d32e86914b1ae145069fca3aecb1c771968cdc7515afee482d02e6",
"md5": "d02d56bdc3d59fbf7c78f6294052d270",
"sha256": "2ce81dc6f7c1d4b00629af78a62c0bfcd46f145ebbe24399b2119835998b9a9b"
},
"downloads": -1,
"filename": "b2-4.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d02d56bdc3d59fbf7c78f6294052d270",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 98471,
"upload_time": "2024-07-30T22:18:26",
"upload_time_iso_8601": "2024-07-30T22:18:26.245927Z",
"url": "https://files.pythonhosted.org/packages/20/18/e1ada0d32e86914b1ae145069fca3aecb1c771968cdc7515afee482d02e6/b2-4.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4c434b5704ff889734bca6b8597a6acd324cc0caacc36eb26583f13444c0c61c",
"md5": "ba2a7a1e4b240d69a2977b9b62f0be1c",
"sha256": "d452506b8e2932fc348eec53166b7694b449e2bbc26750dacf74bad4f4ea980a"
},
"downloads": -1,
"filename": "b2-4.1.0.tar.gz",
"has_sig": false,
"md5_digest": "ba2a7a1e4b240d69a2977b9b62f0be1c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 89452,
"upload_time": "2024-07-30T22:18:28",
"upload_time_iso_8601": "2024-07-30T22:18:28.155925Z",
"url": "https://files.pythonhosted.org/packages/4c/43/4b5704ff889734bca6b8597a6acd324cc0caacc36eb26583f13444c0c61c/b2-4.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-30 22:18:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Backblaze",
"github_project": "B2_Command_Line_Tool",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "b2"
}