PHPackages                             nekman/aws-ring-http-signer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. nekman/aws-ring-http-signer

AbandonedArchivedLibrary[HTTP &amp; Networking](/categories/http)

nekman/aws-ring-http-signer
===========================

Sign Ring HTTP calls using AWS credentials

2.0.0(5y ago)034.7k↓46.4%MITPHPPHP ^7.4||^8.0

Since Aug 19Pushed 4y ago1 watchersCompare

[ Source](https://github.com/Ekman/aws-ring-http-signer)[ Packagist](https://packagist.org/packages/nekman/aws-ring-http-signer)[ RSS](/packages/nekman-aws-ring-http-signer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (7)Versions (7)Used By (0)

AWS Ring HTTP Signer
====================

[](#aws-ring-http-signer)

[![Build Status](https://camo.githubusercontent.com/170c7f4ca33036158bebf084fa47e1da0b816eb11cc54b2c3425c48015451ac3/68747470733a2f2f636972636c6563692e636f6d2f67682f456b6d616e2f6177732d72696e672d687474702d7369676e65722e7376673f7374796c653d737667)](https://app.circleci.com/pipelines/github/Ekman/aws-ring-http-signer)[![Coverage Status](https://camo.githubusercontent.com/817bad28f33705829e09f26e7635893a8edc1f7ee7f512e1780d0baaeaebb61e/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f456b6d616e2f6177732d72696e672d687474702d7369676e65722f62616467652e737667)](https://coveralls.io/github/Ekman/aws-ring-http-signer)

**[RingPHP](https://github.com/guzzle/RingPHP) has been discontinued. This package does not make sense any more.**

In order for AWS to know who/what is making the request it needs to be signed. Using this package, you can sign [RingPHP](https://ringphp.readthedocs.io/en/latest/) requests with AWS credentials.

**Do you want to use this with your Elasticsearch instance hosted on AWS? See the [Usage with Elasticsearch](#usage-with-elasticsearch) section below.**

Usage
-----

[](#usage)

Install with [Composer](https://getcomposer.org):

```
composer require nekman/aws-ring-http-signer
```

In order to instantiate a new instance of the library, use the factory. Then wrap your Ring HTTP handler with the middleware and use it as normal:

```
use GuzzleHttp\Ring\Client\CurlHandler;
use Aws\Signature\SignatureV4;
use Nekman\AwsRingHttpSigner\AwsRingHttpSignerFactory;

$signature = new SignatureV4($awsService, $awsRegion); // How do I create this? Please consult the AWS documentation for the service you are using.
$awsRingHttpSigner = AwsRingHttpSignerFactory::create($signature);

$defaultHandler = new CurlHandler(); // Or use whatever handler you already have available.
$handler = $awsRingHttpSigner($defaultHandler);

// And you're done! Use the $handler as you normally would
```

Usage with Elasticsearch
------------------------

[](#usage-with-elasticsearch)

Install with [Composer](https://getcomposer.org):

```
composer require nekman/aws-ring-http-signer elasticsearch/elasticsearch
```

In order to instantiate a new instance of the library, use the factory. Then wrap your the Elasticsearch client with the middleware and use it as normal:

```
use Elasticsearch\ClientBuilder;
use Nekman\AwsRingHttpSigner\AwsRingHttpSignerFactory;

$awsRingHttpSigner = AwsRingHttpSignerFactory::create($awsRegion);
$handler = $awsRingHttpSigner(ClientBuilder::defaultHandler());

$client = ClientBuilder::create()
    ->setHandler($handler)
    ->build();

// And you're done! Use the $client as you normally would
```

AWS Credentials Provider and signatures
---------------------------------------

[](#aws-credentials-provider-and-signatures)

By default the library will use the default credentials provider provided by AWS. There are many other ways to load credentials which you can [read about in the AWS documentation](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_provider.html). Consult the AWS documentation on how to create a `SignatureInterface`.

### Example

[](#example)

Lets say you want to provide static credentials from environment variables:

```
use Nekman\AwsRingHttpSigner\AwsRingHttpSignerFactory;
use Aws\Credentials\CredentialProvider;
use Aws\Credentials\Credentials;

$credentials = new Credentials(getenv("AWS_KEY"), getenv("AWS_SECRET"));
$credentialProvider = CredentialProvider::fromCredentials($credentials);

$awsRingHttpSigner = AwsRingHttpSignerFactory::create($awsRegion, $credentialProvider);
```

Consult the AWS documentation for more information.

Versioning
----------

[](#versioning)

This project complies with [Semantic Versioning](https://semver.org/).

Changelog
---------

[](#changelog)

For a complete list of changes, and how to migrate between major versions, see [releases page](https://github.com/Ekman/aws-ring-http-signer/releases).

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity26

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity67

Established project with proven stability

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~101 days

Recently: every ~127 days

Total

6

Last Release

1945d ago

Major Versions

0.0.1 → 1.0.02019-08-20

1.0.3 → 2.0.02021-01-10

PHP version history (3 changes)0.0.1PHP ^7.0

1.0.0PHP ^7.1

2.0.0PHP ^7.4||^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/568019?v=4)[Nils](/maintainers/NEkman)[@nekman](https://github.com/nekman)

---

Tags

amazonawselasticsearchhttpmiddlewareringsignaturehttpmiddlewareamazonawssignatureelasticsearchring

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/nekman-aws-ring-http-signer/health.svg)

```
[![Health](https://phpackages.com/badges/nekman-aws-ring-http-signer/health.svg)](https://phpackages.com/packages/nekman-aws-ring-http-signer)
```

###  Alternatives

[mezzio/mezzio

PSR-15 Middleware Microframework

3883.6M97](/packages/mezzio-mezzio)[mezzio/mezzio-authentication-oauth2

OAuth2 (server) authentication middleware for Mezzio and PSR-7 applications.

28483.0k2](/packages/mezzio-mezzio-authentication-oauth2)[mezzio/mezzio-authentication

Authentication middleware for Mezzio and PSR-7 applications

121.6M26](/packages/mezzio-mezzio-authentication)[emartech/escher

Library for HTTP request signing (PHP implementation)

20293.8k8](/packages/emartech-escher)[mezzio/mezzio-helpers

Helper/Utility classes for Mezzio

134.3M67](/packages/mezzio-mezzio-helpers)[mezzio/mezzio-fastroute

FastRoute integration for Mezzio

162.7M52](/packages/mezzio-mezzio-fastroute)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
