Skip to content
This repository has been archived by the owner on Jul 18, 2024. It is now read-only.

Commit

Permalink
Merge pull request #34 from alfpark/develop
Browse files Browse the repository at this point in the history
1.0.0a3
  • Loading branch information
alfpark authored Jun 2, 2017
2 parents 524fe56 + e1d97fa commit d71f10b
Show file tree
Hide file tree
Showing 72 changed files with 13,934 additions and 4,976 deletions.
1 change: 1 addition & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ omit =
exclude_lines =
# Have to re-enable the standard pragma
pragma: no cover
noqa

# Don't complain about missing debug-only code:
def __repr__
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ htmlcov/
nosetests.xml
coverage.xml
*,cover
junit-*.xml

# Translations
*.mo
Expand Down
24 changes: 3 additions & 21 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,10 @@ python:
- 3.3
- 3.4
- 3.5
- pypy
# disable pypy3 until 3.3 compliance
#- pypy3
- 3.6
install:
- |
if [ "$TRAVIS_PYTHON_VERSION" = "pypy" ]; then
export PYENV_ROOT="$HOME/.pyenv"
if [ -f "$PYENV_ROOT/bin/pyenv" ]; then
pushd "$PYENV_ROOT" && git pull && popd
else
rm -rf "$PYENV_ROOT" && git clone --depth 1 https://github.com/yyuu/pyenv.git "$PYENV_ROOT"
fi
export PYPY_VERSION="5.4.1"
"$PYENV_ROOT/bin/pyenv" install --skip-existing "pypy-$PYPY_VERSION"
virtualenv --python="$PYENV_ROOT/versions/pypy-$PYPY_VERSION/bin/python" "$HOME/virtualenvs/pypy-$PYPY_VERSION"
source "$HOME/virtualenvs/pypy-$PYPY_VERSION/bin/activate"
fi
- travis_retry pip install -e .
- travis_retry pip install coveralls flake8 mock pytest pytest-cov requests_mock
- travis_retry pip install tox-travis coveralls
script:
- flake8 blobxfer.py test/test_blobxfer.py
- PYTHONPATH=. py.test -l --full-trace --cov-config .coveragerc --cov-report term-missing --cov blobxfer test/test_blobxfer.py
- tox
after_success:
- coveralls --rcfile=.coveragerc --verbose

97 changes: 58 additions & 39 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,158 +2,176 @@

## [Unreleased]

## [1.0.0a3] - 2017-06-02
### Changed
- From scratch rewrite providing a consistent CLI experience and a vast
array of new and advanced features. Please see the
[1.0.0 Milestone](https://github.com/Azure/blobxfer/milestone/1) for a
catalog of changes.
- **Breaking Changes:** there have been a significant number of breaking
changes with the rewrite from the command-line invocation of `blobxfer`
itself to the options and environment variable names. Please review the
usage documentation carefully when upgrading from 0.12.1.
- All dependencies updated to latest

### Removed
- Azure Service Management certificate support

### Security
- Update cryptography requirement to 1.9

## [0.12.1] - 2016-12-09
#### Changed
### Changed
- Update all dependencies to latest versions

#### Fixed
### Fixed
- Allow page blobs up to 1TB

#### Security
### Security
- Update cryptography requirement to 1.6

## [0.12.0] - 2016-10-17
#### Added
### Added
- Support for Account-level SAS keys
- Update README regarding non-normalized exceptions being thrown (#5)

## [0.11.5] - 2016-10-03
#### Changed
### Changed
- Update all dependencies to latest versions

#### Fixed
### Fixed
- Fix incorrect fileshare path splitting (#3)

#### Security
### Security
- Update cryptography requirement to 1.5.2

## [0.11.4] - 2016-09-12
#### Added
### Added
- Created [Docker image](https://hub.docker.com/r/alfpark/blobxfer)

#### Changed
### Changed
- Update all dependencies to latest versions

#### Fixed
### Fixed
- Fix `--delete` and blob listing with azure-storage (#1)

#### Security
### Security
- Update cryptography requirement to 1.5

## [0.11.2] - 2016-07-28
#### Added
### Added
- Allow rsakeypassphrase to be passed as an environment variable

## 0.11.1 - 2016-07-05
#### Added
### Added
- Allow storage account or sas key credentials to be passed as
environment variables

## 0.11.0 - 2016-06-09
#### Added
### Added
- Azure Files support, please refer to the General Notes section for
limitations

#### Changed
### Changed
- `--blobep` option has been renamed to `--endpoint`

## 0.10.1 - 2016-06-06
#### Changed
### Changed
- Update all dependencies to latest versions
- Add flag for block/page level md5 computation which is now disabled by
default

#### Fixed
### Fixed
- Update against breaking changes from azure-storage 0.32.0

#### Removed
### Removed
- Remove RC designation from encryption/decryption functionality

#### Security
### Security
- Update cryptography requirement to 1.4

## 0.10.0 - 2016-03-22
#### Added
### Added
- Added ``--disable-urllib-warnings`` option to suppress urllib3 warnings
(use with care)

#### Changed
### Changed
- Update script for compatibility with azure-storage 0.30.0 which
is now a required dependency
- Promote encryption to RC status
- `--blobep` now refers to endpoint suffix rather than blob endpoint
(e.g., core.windows.net rather than blob.core.windows.net)

#### Security
### Security
- Update cryptography requirement to 1.3

## 0.9.9.11 - 2016-02-22
#### Changed
### Changed
- Pin azure dependencies due to breaking changes

#### Fixed
### Fixed
- Minor bug fixes

#### Security
### Security
- Update cryptography requirement to 1.2.2

## 0.9.9.10 - 2016-01-31
#### Fixed
### Fixed
- Fix regression in blob name encoding with Python3

## 0.9.9.9 - 2016-01-29
#### Added
### Added
- Emit warning when attempting to use remoteresource with a directory upload

#### Changed
### Changed
- Update setup.py dependencies to latest available versions

#### Fixed
### Fixed
- Fix regression in single file upload and remoteresource renaming
- Replace socket exception handling with requests ConnectionError handling
- Properly handle blob names containing `?` if using SAS

## 0.9.9.8 - 2016-01-06
#### Fixed
### Fixed
- Disable unnecessary thread daemonization
- Gracefully handle KeyboardInterrupts
- Explicitly add azure-common to setup.py install reqs

## 0.9.9.7 - 2016-01-05
#### Added
### Added
- Add python environment and package info to parameter dump to aid issue/bug
reports

#### Changed
### Changed
- Reduce number of default concurrent workers to 3x CPU count
- Change azure\_request backoff mechanism

#### Fixed
### Fixed
- Make base requirements non-optional in import process
- Update azure\_request exception handling to support new Azure Storage Python
SDK errors

## 0.9.9.6 - 2016-01-04
#### Added
### Added
- Encryption support
- No file overwrite on download option
- Auto-detection of file mimetype
- Remote delete option
- Include pattern option

#### Changed
### Changed
- Replace keeprootdir with strip-components option
- Reduce the number of default concurrent workers to 4x CPU count

#### Fixed
### Fixed
- Fix shared key upload with non-existent container
- Fix zero-byte blob download issue

## 0.9.9.5 - 2015-09-27
#### Added
### Added
- File collation support

#### Fixed
### Fixed
- Fix page alignment bug
- Reduce memory usage

Expand Down Expand Up @@ -183,7 +201,8 @@
`--no-skiponmatch`.
- 0.8.2: performance regression fixes

[Unreleased]: https://github.com/Azure/blobxfer/compare/0.12.1...HEAD
[Unreleased]: https://github.com/Azure/blobxfer/compare/1.0.0a3...HEAD
[1.0.0a3]: https://github.com/Azure/blobxfer/compare/0.12.1...1.0.0a3
[0.12.1]: https://github.com/Azure/blobxfer/compare/0.12.0...0.12.1
[0.12.0]: https://github.com/Azure/blobxfer/compare/0.11.5...0.12.0
[0.11.5]: https://github.com/Azure/blobxfer/compare/0.11.4...0.11.5
Expand Down
64 changes: 64 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
[![Build Status](https://travis-ci.org/Azure/blobxfer.svg?branch=master)](https://travis-ci.org/Azure/blobxfer)
[![Coverage Status](https://coveralls.io/repos/github/Azure/blobxfer/badge.svg?branch=master)](https://coveralls.io/github/Azure/blobxfer?branch=master)
[![PyPI](https://img.shields.io/pypi/v/blobxfer.svg)](https://pypi.python.org/pypi/blobxfer)
[![PyPI](https://img.shields.io/pypi/pyversions/blobxfer.svg)](https://pypi.python.org/pypi/blobxfer)
[![Docker Pulls](https://img.shields.io/docker/pulls/alfpark/blobxfer.svg)](https://hub.docker.com/r/alfpark/blobxfer)
[![Image Layers](https://images.microbadger.com/badges/image/alfpark/blobxfer:latest.svg)](http://microbadger.com/images/alfpark/blobxfer)

# blobxfer
`blobxfer` is an advanced data movement tool and library for Azure Storage
Blob and Files. With `blobxfer` you can copy your files into or out of Azure
Storage with the CLI or integrate the `blobxfer` data movement library into
your own Python scripts.

## Major Features
* Command-line interface (CLI) providing data movement capability to and
from Azure Blob and File Storage
* Standalone library for integration with scripts or other Python packages
* High-performance design with asynchronous transfers and disk I/O
* YAML configuration driven execution support
* Resume support
* Vectored IO support
* `stripe` mode allows striping a single file across multiple blobs (even
to multiple storage accounts) to break through single blob or fileshare
throughput limits
* `replica` mode allows replication of a file across multiple destinations
including to multiple storage accounts
* Client-side encryption support
* Support all blob types for both upload and download
* Advanced skip options for rsync-like operations
* Store/restore POSIX filemode and uid/gid
* Support for reading/pipe from `stdin`
* Support for reading from blob snapshots
* Configurable one-shot block upload support
* Configurable chunk size for both upload and download
* Automatic block blob size adjustment for uploading
* Automatic uploading of VHD/VHDX files as page blobs
* Include and exclude filtering support
* Rsync-like delete support
* No clobber support in either direction
* File logging support

## Installation
`blobxfer` is on [PyPI](https://pypi.python.org/pypi/blobxfer) and on
[Docker Hub](https://hub.docker.com/r/alfpark/blobxfer/). Please refer to
the [installation guide](https://github.com/Azure/blobxfer/blob/master/docs/01-installation.md)
on how to install `blobxfer`.

## Documentation
Please refer to the [blobxfer Documentation](https://github.com/Azure/blobxfer/blob/master/docs)
for more details and usage information.

## Change Log
For recent changes, please refer to the
[CHANGELOG.md](https://github.com/Azure/blobxfer/blob/master/CHANGELOG.md)
file.

------------------------------------------------------------------------

This project has adopted the
[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the
[Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
or contact [<opencode@microsoft.com>](mailto:opencode@microsoft.com) with any
additional questions or comments.
Loading

0 comments on commit d71f10b

Please sign in to comment.