Giter Site home page Giter Site logo

cloudfront-signer's Introduction

Cloudfront Signer Service for PHP

Latest Stable Version Total Downloads

This is a simple PHP service for making it easy include the official AWS SDK for PHP in your PHP applications.

It's helps you to sign your files or resources.

Jump To:

Getting Started

Installation

The PHP Service can be installed via Composer by requiring the rc4347/cloudfront-signer package in your project's composer.json.

{
    "require": {
        "rc4347/cloudfront-signer": "^0.0.4"
    }
}

Usage

use RC4347\CloudFrontSigner\credentials\AccessConfig;
use RC4347\CloudFrontSigner\credentials\ClientConfig;
use RC4347\CloudFrontSigner\credentials\ExpireConfig;
use RC4347\CloudFrontSigner\SignedUrlService;

# configuration
$client = new ClientConfig('latest', 'default', '<YOUR_S3_REGION>');
$expire = time() + 300; # returns 5 minutes
$access = new AccessConfig('<YOUR_PRIVATE_KEY>', '<YOUR_S3_KEY_PAIR_ID>'); # private key can get file or string 
$resourceKey = 'https://<YOUR_ID>.cloudfront.net/example/example.png';
$config = new ExpireConfig($resourceKey, $expire);
# Execution
/**
* @returns string "https://<YOUR_ID>.cloudfront.net/example/example.png?Expires=<EXPIRES>&Signature=<SIGNATURE>&Key-Pair-Id=<YOUR_S3_KEY_PAIR_ID>"
 */
$urlService = new SignedUrlService($config, $client, $access);
return $urlService->run();
/**
 * if policy param is empty it will be get default policy.
* @returns array|string [
        "CloudFront-Policy": <GENERATED_POLICY>,
        "CloudFront-Signature": <SIGNATURE>,
        "CloudFront-Key-Pair-Id": <YOUR_S3_KEY_PAIR_ID>
    ]
 */
$policy = <<<POLICY
{
    "Statement": [
        {
            "Resource": "{$this->config->resourceKey}",
            "Condition": {
                "DateLessThan": {"AWS:EpochTime": {$this->config->expires}}
            }
        }
    ]
}
POLICY;

$cookieService = new SignedCookieService($config, $client, $access, $policy) # policy is optional
return $cookieService->run();

Resources

For more information:

cloudfront-signer's People

Contributors

rc4347 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.