{"id":17789275,"url":"https://github.com/filosganga/http4s-aws","last_synced_at":"2025-04-02T00:45:10.104Z","repository":{"id":138312526,"uuid":"245638908","full_name":"filosganga/http4s-aws","owner":"filosganga","description":"AWS V4 authentication for Http4s","archived":false,"fork":false,"pushed_at":"2020-03-07T14:05:44.000Z","size":33,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-07T16:25:43.712Z","etag":null,"topics":["aws","aws-signature-v4","cats","cats-effect","http4s","http4s-modules"],"latest_commit_sha":null,"homepage":null,"language":"Scala","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/filosganga.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":"2020-03-07T13:36:13.000Z","updated_at":"2024-01-25T16:20:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"66261b56-a829-48e4-a2c5-c410c1e44b6f","html_url":"https://github.com/filosganga/http4s-aws","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filosganga%2Fhttp4s-aws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filosganga%2Fhttp4s-aws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filosganga%2Fhttp4s-aws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/filosganga%2Fhttp4s-aws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/filosganga","download_url":"https://codeload.github.com/filosganga/http4s-aws/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246735364,"owners_count":20825224,"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":["aws","aws-signature-v4","cats","cats-effect","http4s","http4s-modules"],"created_at":"2024-10-27T10:29:55.588Z","updated_at":"2025-04-02T00:45:10.076Z","avatar_url":"https://github.com/filosganga.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AWS Signature V4 implementation for http4s\n\nProvides an http4s client middleware that authenticates requests with AWS Auth Signature V4.\n\n## Getting started\n\nTo get started with sbt, simply add the following line to your build.sbt file.\n\n````sbt\nlibraryDependencies += \"com.github.fd4s\" %% \"http4s-aws\" % \"\u003cversion\u003e\"\n````\n\nExample of use with S3:\n\n````scala\n\n  import scala.concurrent.ExecutionContext.{global =\u003e ec}\n  \n  import cats.implicits._\n  import cats.effect._\n  \n  import com.amazonaws.auth.DefaultAWSCredentialsProviderChain\n\n  import org.http4s.{Service =\u003e _, _}\n  import org.http4s.Method._\n  import org.http4s.client._\n  import org.http4s.client.dsl.io._\n  import org.http4s.client.blaze._\n\n  import com.github.fd4s.http4s.aws._\n  import com.github.fd4s.http4s.aws.model._\n\n  implicit val cs: ContextShift[IO] = IO.contextShift(ec)\n\n  BlazeClientBuilder[IO](ec)\n    .resource\n    .map { client =\u003e\n      AwsSigner(\n        CredentialsProvider.fromAwsCredentialProvider[IO](\n          new DefaultAWSCredentialsProviderChain()\n        ),\n        Region.`eu-west-1`,\n        Service.s3\n      )(client)\n    }\n    .use { client =\u003e\n      for {\n        url \u003c- IO.fromEither(Uri.fromString(\"hhttps://test.s3-eu-west-1.amazonaws.com/test.txt\"))\n        req \u003c- GET(url)\n        res \u003c- client.expect[String](req)\n      } yield res\n    }\n    .unsafeRunSync()\n\n````\n\nHappy coding!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilosganga%2Fhttp4s-aws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffilosganga%2Fhttp4s-aws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffilosganga%2Fhttp4s-aws/lists"}