Skip to content

jamayka/Barberry

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The problem

Every web project have different binary data to host and handle: images, PDFs, etc. In most cases those files should be converted in different ways:

  • images: resize and format
  • PDF to image
  • Open office templates to MS Office documents and PDFs

Solution

This application can host a binary/text data (Documents) of a particular content type and convert it in requested way.

It intended to be deployed at separate hostname as bin.project-hostname. Also it is recommended to use cookieless domain for read-only serving of public content.

Installation

./scripts/install/check_dependencies.php
./scripts/install/plugin.php _plugin_names_to_install_
cd test/
phpunit .

Usage

We desided to use REST interface. Here are the commands.

POST

Submitting data to the service.

Url: /
Data: Document and (optionally) variables to parse if Document is a template
Return: {id : "_auto_generated_id_string_", contentType: "_content_type_",
    ext: "_standart_file_extension_", length: _file_size_, filename: "_original_file_name_"}

GET

Getting a document.

Url: /_id_string_._ext_
Data: no
Return: Document

Example: /12wkr234ser349.pdf - get document "12wkr234ser349" as PDF

Getting a document related to some restricted group

Url: /_auth_group_3_letters_/_id_string_._ext_
Data: no
Return: Document

Example: /adm/6b12YX.pdf - get document "12wkr234ser349" as PDF

Restriction of /adm/* URIs should be done externally. See section Authorization below.

DELETE

Deleting a document.

Url: /_id_string_
Data: no
Return: {}

Authorization

Authorization should be done externally.

Example: Restrict all methods except GET with apache web server

<Directory %PUT_THE_PATH_HERE%/binary/public>

    AuthName "Restricted method"
    AuthType Basic
    AuthBasicProvider file
    AuthUserFile %PUT_THE_PATH_HERE%/passwords

    <LimitExcept GET>
        Require valid-user
    </LimitExcept>

    DirectoryIndex index.php
</Directory>

About

Service for stroring and converting binary content with caching capabilities

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • PHP 99.9%
  • Shell 0.1%