# AWS File Helper (awsfile-helper)
Content Management and Retrieval for Cloud and Local Storage
## Code Usage (Authorization)
You must have an AWS Access Key and Secret Access key to connect to AWS.
Upon obtaining these keys, use
```python
from baseblock import CryptoBase
os.environ['AWS_ACCESS_KEY'] = CryptoBase().encrypt_str('<my-access-key>')
os.environ['AWS_SECRET_KEY'] = CryptoBase().encrypt_str('<my-secret-key>')
```
This will place your encrypted credentials into the environment.
The `AwsAPI` class will retrieve and decrypt these credentials to login.
## Code Usage (General)
The following code will retrieve any file:
```python
from awsfile_helper import FindOwlFile
d_cloud_file = FindS3File(
file_name='config/graphviz/stylesheets/nlu',
file_ext='yaml', file_version='0.1.0').process()
```
The bucket is assumed to be `data-core-bast`.
We can modify this assumption down the road if we create new buckets for different clients, etc.
A file may also be retrieved without a version, like this:
```python
d_cloud_file = FindS3File(
file_name='config/graphviz/stylesheets/nlu',
file_ext='yaml').process()
```
In that case, the system will first look in the environment, using a key configuration that relies on the `file_name` like this: `CONFIG_GRAPHVIZ_STYLESHEETS_NLU_VERSION`. If no value is found in the environment, the system will consider this a _wildcard_ match and set the version to `*`. This forces the system to list the contents of the qualified path and choose the latest version. This operation takes an additional 2-3 milliseconds, assuming the network is running smoothly.
## Code Usage (Ontologies)
Ontologies require a special finder class, because we typically have two files we want to retrieve - an OWL model and a TXT file with synonyms.
Therefore, assume that an S3 bucket exists with two files we want to retrieve: `syllabus.owl` and `syllabus.txt`.
The following code will retrieve these files:
```python
from awsfile_helper import FindOwlFile
d_cloud_file = FindOwlFile(file_name='syllabus', version='0.1.0').process()
```
Note that we did not specify the file extension within the `file_name` variable.
It is permissible to specify explicit file names such as `syllabus.txt` or partial file names such.
The result dictionary is keyed by file name and (with redacted contents) looks like this:
```json
{
"owl": {
"path": "<local path to OWL file">,
"version": "<version of OWL file>",
"contents": "<contents of OWL file>"
},
"txt": {
"path": "<local path to txt file">,
"version": "<version of txt file>",
"contents": "<contents of txt file>"
}
}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/craigtrim/awsfile-helper",
"name": "awsfile-helper",
"maintainer": "Craig Trim",
"docs_url": null,
"requires_python": ">=3.8.5,<4.0.0",
"maintainer_email": "craigtrim@gmail.com",
"keywords": "aws,cloud,s3,bucket,helper,utility",
"author": "Craig Trim",
"author_email": "craigtrim@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/24/06/388c030cd900b2f8a431d73cefd55bd5221e4a4e0b8564d8d9618e299d02/awsfile_helper-0.1.18.tar.gz",
"platform": null,
"description": "# AWS File Helper (awsfile-helper)\nContent Management and Retrieval for Cloud and Local Storage\n\n## Code Usage (Authorization)\nYou must have an AWS Access Key and Secret Access key to connect to AWS.\n\nUpon obtaining these keys, use\n```python\nfrom baseblock import CryptoBase\n\nos.environ['AWS_ACCESS_KEY'] = CryptoBase().encrypt_str('<my-access-key>')\nos.environ['AWS_SECRET_KEY'] = CryptoBase().encrypt_str('<my-secret-key>')\n```\n\nThis will place your encrypted credentials into the environment.\n\nThe `AwsAPI` class will retrieve and decrypt these credentials to login.\n\n## Code Usage (General)\nThe following code will retrieve any file:\n```python\nfrom awsfile_helper import FindOwlFile\n\nd_cloud_file = FindS3File(\n file_name='config/graphviz/stylesheets/nlu',\n file_ext='yaml', file_version='0.1.0').process()\n```\nThe bucket is assumed to be `data-core-bast`.\n\nWe can modify this assumption down the road if we create new buckets for different clients, etc.\n\nA file may also be retrieved without a version, like this:\n```python\nd_cloud_file = FindS3File(\n file_name='config/graphviz/stylesheets/nlu',\n file_ext='yaml').process()\n```\n\nIn that case, the system will first look in the environment, using a key configuration that relies on the `file_name` like this: `CONFIG_GRAPHVIZ_STYLESHEETS_NLU_VERSION`. If no value is found in the environment, the system will consider this a _wildcard_ match and set the version to `*`. This forces the system to list the contents of the qualified path and choose the latest version. This operation takes an additional 2-3 milliseconds, assuming the network is running smoothly.\n\n\n## Code Usage (Ontologies)\nOntologies require a special finder class, because we typically have two files we want to retrieve - an OWL model and a TXT file with synonyms.\n\nTherefore, assume that an S3 bucket exists with two files we want to retrieve: `syllabus.owl` and `syllabus.txt`.\n\nThe following code will retrieve these files:\n```python\nfrom awsfile_helper import FindOwlFile\n\nd_cloud_file = FindOwlFile(file_name='syllabus', version='0.1.0').process()\n```\n\nNote that we did not specify the file extension within the `file_name` variable.\n\nIt is permissible to specify explicit file names such as `syllabus.txt` or partial file names such.\n\nThe result dictionary is keyed by file name and (with redacted contents) looks like this:\n```json\n{\n \"owl\": {\n \"path\": \"<local path to OWL file\">,\n \"version\": \"<version of OWL file>\",\n \"contents\": \"<contents of OWL file>\"\n },\n \"txt\": {\n \"path\": \"<local path to txt file\">,\n \"version\": \"<version of txt file>\",\n \"contents\": \"<contents of txt file>\"\n }\n}\n```\n",
"bugtrack_url": null,
"license": "None",
"summary": "AWS File Helper for Easier I/O",
"version": "0.1.18",
"project_urls": {
"Bug Tracker": "https://github.com/craigtrim/awsfile-helper/issues",
"Homepage": "https://github.com/craigtrim/awsfile-helper",
"Repository": "https://github.com/craigtrim/awsfile-helper"
},
"split_keywords": [
"aws",
"cloud",
"s3",
"bucket",
"helper",
"utility"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "18a083f6067eb02d435171f7af5f20d671867b93a14caead5d287eadcf17c6eb",
"md5": "1b59fea739a227f6d1fa529d5edde1b8",
"sha256": "04abdba6eddf0cd974aede8ff2f29f63ee155f94cdb38d2fae6889f11114b72a"
},
"downloads": -1,
"filename": "awsfile_helper-0.1.18-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1b59fea739a227f6d1fa529d5edde1b8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8.5,<4.0.0",
"size": 24428,
"upload_time": "2023-07-26T19:40:28",
"upload_time_iso_8601": "2023-07-26T19:40:28.231734Z",
"url": "https://files.pythonhosted.org/packages/18/a0/83f6067eb02d435171f7af5f20d671867b93a14caead5d287eadcf17c6eb/awsfile_helper-0.1.18-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2406388c030cd900b2f8a431d73cefd55bd5221e4a4e0b8564d8d9618e299d02",
"md5": "1e86175b20d2f960e00a0f62a8359f85",
"sha256": "4d558c05384157b5257e80a988017327fa2901bce3ce0a7c9ff05727fc0cdd75"
},
"downloads": -1,
"filename": "awsfile_helper-0.1.18.tar.gz",
"has_sig": false,
"md5_digest": "1e86175b20d2f960e00a0f62a8359f85",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8.5,<4.0.0",
"size": 12798,
"upload_time": "2023-07-26T19:40:29",
"upload_time_iso_8601": "2023-07-26T19:40:29.758600Z",
"url": "https://files.pythonhosted.org/packages/24/06/388c030cd900b2f8a431d73cefd55bd5221e4a4e0b8564d8d9618e299d02/awsfile_helper-0.1.18.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-07-26 19:40:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "craigtrim",
"github_project": "awsfile-helper",
"github_not_found": true,
"lcname": "awsfile-helper"
}