Skip to main content

AliCloud OSS filesystem for PyFilesystem2

Project description

OSSFS is a PyFilesystem interface to AliCloud OSS cloud storage.

As a PyFilesystem concrete class, OSSFS allows you to work with OSS in the same way as any other supported filesystem.

Installing

You can install OSSFS from pip as follows:

pip install fs-ossfs

Opening a OSSFS

Open an OSSFS by explicitly using the constructor:

from fs_ossfs import OSSFS
ossfs = OSSFS('mybucket')

Or with a FS URL:

from fs import open_fs
ossfs = open_fs('oss://mybucket')

Downloading Files

To download files from an OSS bucket, open a file on the OSS filesystem for reading, then write the data to a file on the local filesystem. Here’s an example that copies a file example.mov from OSS to your HD:

from fs.tools import copy_file_data
with ossfs.open('example.mov', 'rb') as remote_file:
    with open('example.mov', 'wb') as local_file:
        copy_file_data(remote_file, local_file)

Although it is preferable to use the higher-level functionality in the fs.copy module. Here’s an example:

from fs.copy import copy_file
copy_file(ossfs, 'example.mov', './', 'example.mov')

Uploading Files

You can upload files in the same way. Simply copy a file from a source filesystem to the OSS filesystem. See Moving and Copying for more information.

ExtraArgs

OSS objects have additional properties, beyond a traditional filesystem. These options can be set using the upload_args and download_args properties. which are handed to upload and download methods, as appropriate, for the lifetime of the filesystem instance.

For example, to set the cache-control header of all objects uploaded to a bucket:

import fs, fs.mirror
ossfs = OSSFS('example', upload_args={"CacheControl": "max-age=2592000", "ACL": "public-read"})
fs.mirror.mirror('/path/to/mirror', ossfs)

see the Boto3 docs for more information.

acl and cache_control are exposed explicitly for convenience, and can be used in URLs. It is important to URL-Escape the cache_control value in a URL, as it may contain special characters.

import fs, fs.mirror
with open fs.open_fs('oss://example?acl=public-read&cache_control=max-age%3D2592000%2Cpublic') as ossfs
    fs.mirror.mirror('/path/to/mirror', ossfs)

OSS URLs

You can get a public URL to a file on a OSS bucket as follows:

movie_url = ossfs.geturl('example.mov')

Documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fs-ossfs-1.1.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

fs_ossfs-1.1.1-py2.py3-none-any.whl (11.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file fs-ossfs-1.1.1.tar.gz.

File metadata

  • Download URL: fs-ossfs-1.1.1.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for fs-ossfs-1.1.1.tar.gz
Algorithm Hash digest
SHA256 a9f02aa48e902bd5dfff1924c1092071b72961e128dd4dfed9ed33b0052a4a36
MD5 37a451b6846e38d90d88388b31d9d84c
BLAKE2b-256 0df6b27afa3edac3ce4e9c9bba17f5787e76a07c9db0454d72202207a51b1817

See more details on using hashes here.

File details

Details for the file fs_ossfs-1.1.1-py2.py3-none-any.whl.

File metadata

  • Download URL: fs_ossfs-1.1.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for fs_ossfs-1.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 98bfab0e011d7f8b4bd389a38edbac6f19ac445f28c4dbbb7f88014d3148acab
MD5 f878d3099fb95ed831f6559a726d0744
BLAKE2b-256 be67393239bdc58a54f34c2e819461bd42437e26e86ed645a8c8711cc17cfff8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page