mirror of
https://github.com/imgproxy/imgproxy.git
synced 2024-11-24 08:12:38 +02:00
Simple README
This commit is contained in:
parent
0c006ce61e
commit
55999f0c01
43
README.md
Normal file
43
README.md
Normal file
@ -0,0 +1,43 @@
|
||||
# Imgproxy
|
||||
|
||||
Tiny, fast and secure server for processing remote images.
|
||||
|
||||
### How to generate url path
|
||||
|
||||
Full README is on the way. Here is a short sample which shows how to generate url
|
||||
path for imgproxy.
|
||||
|
||||
```ruby
|
||||
require 'openssl'
|
||||
require 'base64'
|
||||
|
||||
# Key and salt. Since they're hex-encoded, we should decode it.
|
||||
key = ['943b421c9eb07c830af81030552c86009268de4e532ba2ee2eab8247c6da0881'].pack("H*")
|
||||
salt = ['520f986b998545b4785e0defbc4f3c1203f22de2374a3d53cb7a7fe9fea309c5'].pack("H*")
|
||||
|
||||
# This is remote url with requested image
|
||||
url = "http://img.example.com/pretty/image.jpg"
|
||||
|
||||
# Url should be encoded with base64 and could be splitted
|
||||
encodedUrl = Base64.urlsafe_encode64(url).tr("=", "").scan(/.{1,16}/).join("/")
|
||||
|
||||
# Allowed values for resize are: fill, fit, crop and resize
|
||||
resize = 'fill'
|
||||
width = 300
|
||||
height = 300
|
||||
# Allowed values for gravity are: no (north), so (south), ea (east), we (west)
|
||||
# ce (center) and sm (smart). "sm" works correctly only with resize == crop.
|
||||
gravity = 'no'
|
||||
# Should we enlarge small images? 1 for yes, and 0 for no.
|
||||
enlarge = 1
|
||||
# Allowed extensions are png and jpg/jpeg.
|
||||
extension = 'png'
|
||||
|
||||
path = "/#{resize}/#{width}/#{height}/#{gravity}/#{enlarge}/#{encodedUrl}.#{extension}"
|
||||
|
||||
# Now we need to sign path with HMAC (SHA256)
|
||||
digest = OpenSSL::Digest.new('sha256')
|
||||
hmac = Base64.urlsafe_encode64(OpenSSL::HMAC.digest(digest, key, "#{salt}#{path}")).tr('=', '')
|
||||
|
||||
signed_path = "/#{hmac}#{path}"
|
||||
```
|
Loading…
Reference in New Issue
Block a user