Skip to main content

Amazon EFS (amazon-efs) allows programmatically manipulate EFS data (create, read, delete, list files) from any machine.

Project description

Amazon EFS (amazon-efs)

Amazon EFS (amazon-efs) allows programmatically manipulate EFS data (create, read, delete, list files) from any machine.

Prerequisites

  • python
  • pip
  • boto3
  • AWS Account
  • AWS Credentials

Install

pip install amazon-efs

Warning

EFS should have at least one mount target in a Private subnet

Limits

list_files, upload, download, delete actions are limited by 15 minutes execution time (AWS Lambda works under the hood)

Basics

from amazon_efs import Efs

efs_id = 'fs-0d74736bfc*******'
efs = Efs(efs_id)

# Deploying required underlying resources
efs.init()
# Actions (e.g. list_files, upload, download, delete)
files_list = efs.list_files()
# Don't forget to destroy underlying resources at the end of the session
efs.destroy()

Actions

List files

from amazon_efs import Efs

efs_id = 'fs-0d74736bfc*******'
efs = Efs(efs_id)

efs.init()

files_list = efs.list_files()
print(files_list)
files_list = efs.list_files('dir1')
print(files_list)
files_list = efs.list_files('dir1/dir2')
print(files_list)

efs.destroy()

Upload

from amazon_efs import Efs

efs_id = 'fs-0d74736bfc*******'
efs = Efs(efs_id)

efs.init()

efs.upload('file.txt')
efs.upload('file.txt', 'dir1/new_file.txt')
efs.upload('file.txt', 'dir1/dir2/new_file.txt')
efs.upload('file.txt', 'dir1/dir3/new_file.txt')
efs.upload('file.txt', 'dir2/dir3/new_file.txt')
efs.upload('file.txt', 'dir2/dir4/new_file.txt')

efs.destroy()

Download

from amazon_efs import Efs

efs_id = 'fs-0d74736bfc*******'
efs = Efs(efs_id)

efs.init()

efs.download('dir1/dir3/new_file.txt', 'file1.txt')

efs.destroy()

Delete

Delete file

from amazon_efs import Efs

efs_id = 'fs-0d74736bfc*******'
efs = Efs(efs_id)

efs.init()

efs.delete('dir2/dir3/new_file.txt')

efs.destroy()

Delete folder

from amazon_efs import Efs

efs_id = 'fs-0d74736bfc*******'
efs = Efs(efs_id)

efs.init()

efs.delete('dir1/dir2/*')
efs.delete('dir1/*')

efs.destroy()

State

You can destroy underlying infrastructure even after destroying EFS object from RAM if you saved the state

from amazon_efs import Efs

efs_id = 'fs-0d74736bfc*******'
efs = Efs(efs_id)

state = efs.init()

# Destroy object
del efs

efs = Efs(efs_id, { 'state': state })

files_list = efs.list_files()
print(files_list)

efs.destroy()

Tags

You can add custom tags to underlying resources

from amazon_efs import Efs

efs_id = 'fs-0d74736bfc*******'
efs = Efs(efs_id, {
    'tags': {
        'k1': 'v1',
        'k2': 'v2'
    }
})

efs.init()

files_list = efs.list_files()
print(files_list)

efs.destroy()

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

amazon-efs-0.0.2.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

amazon_efs-0.0.2-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file amazon-efs-0.0.2.tar.gz.

File metadata

  • Download URL: amazon-efs-0.0.2.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.63.1 importlib-metadata/4.10.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.12

File hashes

Hashes for amazon-efs-0.0.2.tar.gz
Algorithm Hash digest
SHA256 16f95bbaf54943b2db3263d414acf8103aa7fb66a6198b6f2d9031f442b94402
MD5 347ae4600783ca5cf7acfb2be8062bf2
BLAKE2b-256 18132e0909c7a7d5e1c22d8317adb535fa555c190bbb2beefad885a635280298

See more details on using hashes here.

File details

Details for the file amazon_efs-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: amazon_efs-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.63.1 importlib-metadata/4.10.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.12

File hashes

Hashes for amazon_efs-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b3129357933cb69d12a13e664c8628c4f62bdd0e10aff2303a2dac4eee11e048
MD5 c4c027901dd98e86e39d0d7893cb42da
BLAKE2b-256 81e22e4dd5cbde12ef1fd8b1e5348dd37c5ebb482ee63a9c44df38cd12b4c353

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