NAME dbedia::blob - interface to (not only) b.dbedia.com blob storage SYNOPSIS use dbedia::blob; my $blob = dbedia::blob->new(file => $file); say $blob->file_path; say $blob->file_url; say $blob->file_meta->{mime_type}; say $blob->file_meta_yaml; $blob->upload; DESCRIPTION Module to upload files to blob server with their sha256 checksum as a part of their name. So for example swagger-ui.js becomes https://b.dbedia.com/e3d4e875f9d0b751bc7276e6472e96a5262cabc64b060540da 190bfdc0e36dec/swagger-ui.js and will be stored under e3/d4/e8/75f9d0b751bc7276e6472e96a5262cabc64b060540da190bfdc0e36dec on a target server. METHODS new(file => ..., base_uri => ...) Object constructor file Object accessor with file location on local filesystem. base_uri Object accessor with base location on blob server. Default to https://b.dbedia.com/ but can be anything like http://you-server/blob-path/. file_chksum file sha256 hex checksum. file_url Web url for a file based on the checksum and base_uri. file_path File path on a blob server. file_meta Return file meta has with original filename, mime_type and size. For example: { filename => 'swagger-ui.js', mime_type => 'application/javascript', size => 355197, } file_meta_yaml Returns "file_meta" yaml. file_meta_path File meta data (yaml) path on a blob server. upload($hostname) Using Net::SCP will upload "file" to $hostname server. Default is dbedia-blob which can be configured in ~/.ssh/config to point to any hostname/username/auth configuration of your liking. In case file is already present will print warning about skipping. default_base_uri Returns https://b.dbedia.com/ uri. EXAMPLE NGINX CONFIG configuration to serve blobs via nginx: server { server_name b.dbedia.com; access_log /var/log/nginx/b.dbedia-access.log; root /srv/www/b.dbedia.com; index index.html index.htm; location / { expires 5m; } location ~ "^(/..)(..)(..)(.{58})(.*)$" { alias /srv/www/b.dbedia.com/$1/$2/$3/$4; expires 24h; } } CONTRIBUTORS The following people have contributed to the Sys::Path by committing their code, sending patches, reporting bugs, asking questions, suggesting useful advice, nitpicking, chatting on IRC or commenting on my blog (in no particular order): you? AUTHOR Jozef Kutej LICENSE AND COPYRIGHT This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information.