Change Log
- .
- Added a
content_settingsparameter toopen()(write modes),pipe_file()andput_file()to set blob content settings (content type, content disposition, cache control, ...) on write. Accepts adict(recommended) or anazure.storage.blob.ContentSettingsinstance. #554 - Fixed
ls()returning incorrect results when a file shares the same prefix as other files in the same directory (#409)
- Breaking: Removed ADLS Gen1 support. The
adl://protocol and AzureDatalakeFileSystem class are no longer available. It is recommended to use theaz://protocol and/orAzureBlobFileSystem, which support Azure Blob Storage and Azure Data Lake Storage Gen2. - Fixed bug where
fs.ls(detail=True)returned Etag formatted without double quotes.#544
- Breaking: adlfs no longer uses anonymous authentication by default. It now defaults to using default Azure credentials for authentication.
To continue using anonymous authentication please set
anon=Truewhen creatingAzureBlobFileSystemor set theAZURE_STORAGE_ANONenvironment variable toTrue. - Added
**kwargstoAzureBlobFileSystem.exists() - Populate
AzureBlobFile.version_idon write whenversion_awareis enabled. - Fixed issue where unawaitable Credential types were incorrectly awaited (#431)
- Update ADLS Gen 1 deprecation warning to inform of removal of all ADLS Gen 1 features in an upcoming release.
If using ADLS Gen 1 interfaces, it is recommended to migrate to the
az://protocol and/oradlfs.AzureBlobFileSystemclass which support Azure Blob Storage and Azure Data Lake Storage Gen2. - Lazy-load
metadataproperty onAzureBlobFileto avoid fetching metadata on file open when it is not accessed. - Respect
AzureBlobFileSystem.protocoltuple when removing protocols from fully-qualified paths provided toAzureBlobFileSystemmethods. - Added
AzureBlobFileSystem.rm_file() - Keyword arguments for
putandput_fileare now proxied to the Azure Blob SDK client to support specifying content settings, tags, and more. - Removed support for Python 3.9 and added support for Python 3.14.
- Updated the azure-storage-blob dependency to include
aioand removed theaiohttpdependency. - Breaking: Warning added for default anonymous use. By default, adlfs will require credentials starting
in a future release. Anyone requiring anonymous access should explicitly set
anon=Truewhen creatingAzureBlobFileSystem.
- Added "adlfs" to library's default user agent
- Fix issue where
AzureBlobFiledid not respectlocation_modeparameter from parentAzureBlobFileSystemwhen using SAS credentials and connecting to new SDK clients. - The block size is now used for partitioned uploads. Previously, 1 GiB was used for each uploaded block irrespective of the block size
- Updated default block size to be 50 MiB. Set
blocksizeforAzureBlobFileSystemorblock_sizewhen openingAzureBlobFileto revert back to 5 MiB default. AzureBlobFilenow inherits the block size fromAzureBlobFileSystemwhen fs.open() is called and a block_size is not passed in.- Introduce concurrent uploads for large
AzureBlobFileSystem.write()calls. Maximum concurrency can be set usingmax_concurrencyforAzureBlobFileSystem.
- Add "exclusive" more to put, pipe and open, as in upstream fsspec
- Allow concurrency in fetch_ranges
- update versions
- signed URLs from connection string; and add content type
- CI cleanups
- better error messages
- honor anon parameter better
- deterministic blob IDs on upload
AzureBlobFileSystemandAzureBlobFilesupport pickling.- Handle mixed casing for
hdi_isfoldermetadata when determining whether a blob should be treated as a folder. _put_file:overwritenow defaults toTrue.
- Added support for timeout/connection_timeout/read_timeout
- Compatability with new
globbehavior in fsspec 2023.9.0 - Compatability with
azure.storage.blob12.18.1
- Reorder fs.info() to search the parent directory only after searching for the specified item directly
- Removed pin on upper bound for azure-storage-blob
- Moved AzureDatalakeFileSystem to a separate module, in acknowledgement of Microsoft End of Life notice
- Added DeprecationWarning to AzureDatalakeFilesystem
- Pin azure-storage-blob >=12.12.0,<12.14. Requires pinning azure-core>=1.23.1,<2.0.0
- Fixed missing dependency on
aiohttpin package metadata.
- Add support to AzureBlobFileSystem for versioning
- Assure full uri's are left stripped to remove ""
- Set Python requires >=3.8 in setup.cfg
- _strip_protocol handle lists
- Fix overflow error when uploading files > 2GB
- Added support for Python 3.10 and pinned Python 3.8
- Skip test_url due to bug in Azurite
- Added isort and update pre-commit
- Updated requirements to fsspec >= 2021.10.1 to fix #280
- Fixed deprecation warning in pytest_asyncio by setting asycio_mode = True
- Added support for Hierarchical Namespaces in Gen2 to enable multilevel Hive partitioned tables in pyarrow
- Registered abfss:// as an entrypoint instead of registering at runtime
- Implemented support for fsspec callbacks in put_file and get_file
- Fixed isdir() bug causing some directories to be labeled incorrectly as files
- Added flexible url handling to improve compatibility with other applications using Spark and fsspec
- Fixed call to isdir(), to run direct call to Azure container, instead of calling .ls on the directory
- Fixed call to isfile() to directly evaluate the file, insteading of calling ls on the directory
- Updated unit test for isdir
- Added DefaultAzureCredential as an authentication method. Activated if anon is False, and no explicit credentials are passed. See authentication methods enabled here.
- Updated initiate_upload() method to allow overwriting a blob if the credentials do not have delete priveleges.
- Fixed bug in fetch_range that caused attempted reads beyond end of file
- Added check to mkdir when creating a container to confirm container_name conforms to Azure requirements
- Compatability with fsspec 2021.6.0
exists()calls now also checks whether a directory with that name exists or not. Previously this was only checked from the cache- Fixed bug in
findnot returning exact matches - Added
AzureDatalakeFileSystem.rm_fileandAzureDatalakeFileSystem.rmdir - Fixed bug in
filter_blobswhen target path contained a special character
- Added the location_mode parameter to AzureBlobFileSystem object, and set default to "primary" to enable Access Control Lists and RA-GRS access. Valid values are "primary" and "secondary"
- Now can create / destroy containers with
mkdir()/rmdir()without needing to have the privilige of listing all containers. - When called with only container name,
exists()now returns the proper result (about the existence of the container) instead of a hard-codedTrue - Removed version constraints on azure-storage-blob, pytest, and docker
- Updated conftest script to start Azurite docker container
- fsspec version updated to 0.9.0
- Updated path structure, so virtual folders in Azure blobs are created with a trailing "/", to fix #137
- Converted all references to blob_clients to occur inside a context manager
- Added metadata to blob reads and writes, with {"is_directory": ""} to help resolve ambiguous folder and file discrepancies
- Minor update to assure compatibility with fsspec==0.8.7
- Added error handling to AzureBlobFile finalizer
- Updated AzureBlobFile.close method to execute threadsafe with asyncio
- Added check for leading "?" in sas_token parameter
- Fix for setting loop attribute on newer version of fsspec #197
- Converted self.mkdir() to a no-op to align to fsspec issue #562
- Fixed errors with pyarrow write_dataset method related to pseudo-directories in *171.
- Fixed race conditions with finalizer on AzureBlobFile object
- Pinned fsspec to 0.8.7 to respect this change in async
- Added ability to connect with only connection_string.
- connection_string now pre-empts other credentials.
- Added ability to fetch multiple AZURE_STORAGE_XYZ credentials as environmental variables
- Removed weakref and added close method to fix memory leak
- Added **kwargs reference to _cp_file
- Implemented asynchronous uploads and downloads of AzureBlobFile objects
- Aligned on policy for asynchronous context managers to be preferred with blob_client.
- Added abfs.makedir() method and aligned exist_ok parameter to fsspec api
- Updated abfs.mkdir() method to align to fsspec api.
- Pinned azure-storage-blob >= 12.5.0,<12.7.0 -- version 12.7.0 breaks compatability with azurite for unit testing
- Fixed expception raised when commiting writes of large blobs
- Improved performance when checking for the existance of a key in a container with
.exists() - Improved performance of
.find() - Improved documentation for Azure SDK
- Fixed failed authentication when passing a credential
v0.3.0
- Updated azure-storage-blob dependency to >=v12
- Addede azure-core as dependency for exception handling
- Updated code for compatibility with fsspec > 0.6