{"id":20109841,"url":"https://github.com/hyper63/hyper-adapter-namespaced-s3","last_synced_at":"2025-03-02T18:24:55.173Z","repository":{"id":42520863,"uuid":"452455082","full_name":"hyper63/hyper-adapter-namespaced-s3","owner":"hyper63","description":"AWS S3 Single Bucket Adapter for Hyper Storage port","archived":false,"fork":false,"pushed_at":"2023-05-24T01:48:25.000Z","size":295,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-13T05:41:39.291Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyper63.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-26T22:01:55.000Z","updated_at":"2022-11-16T23:13:24.000Z","dependencies_parsed_at":"2025-01-13T05:40:45.572Z","dependency_job_id":null,"html_url":"https://github.com/hyper63/hyper-adapter-namespaced-s3","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":"hyper63/adapter-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyper63%2Fhyper-adapter-namespaced-s3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyper63%2Fhyper-adapter-namespaced-s3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyper63%2Fhyper-adapter-namespaced-s3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyper63%2Fhyper-adapter-namespaced-s3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyper63","download_url":"https://codeload.github.com/hyper63/hyper-adapter-namespaced-s3/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241550080,"owners_count":19980645,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T18:09:36.791Z","updated_at":"2025-03-02T18:24:55.150Z","avatar_url":"https://github.com/hyper63.png","language":"JavaScript","readme":"\u003ch1 align=\"center\"\u003ehyper-adapter-namespaced-s3\u003c/h1\u003e\n\u003cp align=\"center\"\u003eA Storage port adapter that uses a single AWS S3 Bucket for object storage in the \u003ca href=\"https://hyper.io/\"\u003ehyper\u003c/a\u003e  service framework\u003c/p\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://nest.land/package/hyper-adapter-namespaced-s3\"\u003e\u003cimg src=\"https://nest.land/badge.svg\" alt=\"Nest Badge\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/hyper63/hyper-adapter-namespaced-s3/actions/workflows/test-and-publish.yml\"\u003e\u003cimg src=\"https://github.com/hyper63/hyper-adapter-namespaced-s3/actions/workflows/test-and-publish.yml/badge.svg\" alt=\"Test\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/hyper63/hyper-adapter-namespaced-s3/tags/\"\u003e\u003cimg src=\"https://img.shields.io/github/tag/hyper63/hyper-adapter-namespaced-s3\" alt=\"Current Version\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003e **Note**: this adapter utilizes a **single S3 bucket** to store all objects, across all hyper\n\u003e storage services, where each hyper Storage service is a prefix in that single bucket. This makes\n\u003e it a great option if you're concerned about surpassing AWS'\n\u003e [S3 Bucket Count Restrictions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html)\n\u003e If you'd like an S3 bucket created for _each_ hyper Storage service created, consider using the\n\u003e [hyper-adapter-s3 adapter](https://github.com/hyper63/hyper-adapter-s3).\n\n## Table of Contents\n\n- [Getting Started](#getting-started)\n- [Installation](#installation)\n- [Features](#features)\n- [Methods](#methods)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Getting Started\n\n`hyper.config.js`\n\n```js\nimport { default as s3 } from 'https://x.nest.land/hyper-adapter-namespaced-s3@2.2.1/mod.js'\n\nexport default {\n  app: opine,\n  adapter: [\n    { port: 'storage', plugins: [s3('UNIQUE_NAME')] },\n  ],\n}\n```\n\nWhen you configure the hyper service with this adapter, you must provide a unique bucket prefix.\nThis helps ensure your bucket name is globally unique\n\n\u003e The unique name is an alphanumeric string that contains identifing information, this will enable\n\u003e you to identify the bucket which will be prefixed by 'hyper-storage-' and whatever name you\n\u003e provide.\n\nIn order to use this adapter you will need to have an AWS Account and will need the following\ninformation:\n\n- IAM User with access to s3 (AWS_ACCESS_KEY_ID, AWS_ACCESS_SECRET_KEY)\n- AWS Region (default: us-east-1)\n\n\u003e The AWS User will need the ability to manage s3 and s3 resources\n\n### Credentials\n\nThis adapter will attempt to read `AWS_ACCESS_KEY_ID` and `AWS_ACCESS_SECRET_KEY` from `Deno.env`.\nAlternatively, you can provide the access key, secret key, and region as arguments to the adapter\nfactory function:\n\n```js\nimport { default as s3 } from 'https://x.nest.land/hyper-adapter-namespaced-s3@2.2.1/mod.js'\n\nexport default {\n  app: opine,\n  adapter: [\n    {\n      port: 'storage',\n      plugins: [\n        s3('UNIQUE_NAME', {\n          awsAccessKeyId: 'foo',\n          awsSecretKey: 'bar',\n          awsRegion: 'us-east-1', // defaults to 'us-east-1`\n        }),\n      ],\n    },\n  ],\n}\n```\n\n#### Credentials from ENV VARS\n\nYou may set envrionment variables like so, and the adapter will use them:\n\n```txt\nAWS_ACCESS_KEY_ID=XXXXX\nAWS_SECRET_ACCESS_KEY=XXXX\nAWS_REGION=XXXXX\n```\n\n## Installation\n\nThis is a Deno module available to import from\n[nest.land](https://nest.land/package/hyper-adapter-namespaced-s3)\n\ndeps.js\n\n```js\nexport { default as s3 } from 'https://x.nest.land/hyper-adapter-namespaced-s3@2.2.1/mod.js'\n```\n\n## Features\n\n- Create an `s3` bucket\n- Remove an `s3` bucket\n- List `s3` buckets\n- Put an object into an `s3` bucket\n- Remove an object from an `s3` bucket\n- Get an object from an `s3` bucket\n- List objects in an `s3` bucket\n\n## Methods\n\nThis adapter fully implements the Search port and can be used as the\n[hyper Storage service](https://docs.hyper.io/storage-api) adapter\n\nSee the full port [here](https://nest.land/package/hyper-port-storage)\n\n## Contributing\n\nContributions are welcome! See the hyper\n[contribution guide](https://docs.hyper.io/contributing-to-hyper)\n\n## Testing\n\n```\ndeno task test\n```\n\nTo lint, check formatting, and run unit tests\n\n## License\n\nApache-2.0\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyper63%2Fhyper-adapter-namespaced-s3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyper63%2Fhyper-adapter-namespaced-s3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyper63%2Fhyper-adapter-namespaced-s3/lists"}