Swift obtener objetos temporales de e URL
URL, de carácter temporal, utiliza una firma criptográfica de tipo " HMAC-SHA1 ", que incluye los siguientes elementos:
El valor del método de solicitud,
GETpor ejemplo.La hora de caducidad, en el formato de segundos desde la época, es decir, la hora de Unix.
La vía de acceso de solicitud que empieza a partir de
v1en adelante.
Los elementos se normalizan con líneas nuevas que se añaden entre ellos. Se genera un HMAC que utiliza el algoritmo de hash SHA-1 contra una de las claves temporales (Temp URL ) publicadas anteriormente.
El ejemplo siguiente es un script python de ejemplo para demostrarlo.
Ejemplo
import hmac
from hashlib import sha1
from time import time
method = 'GET'
host = 'https://objectstore.example.com'
duration_in_seconds = 300 # Duration for which the url is valid
expires = int(time() + duration_in_seconds)
path = '/v1/your-bucket/your-object'
key = 'secret'
hmac_body = '%s\n%s\n%s' % (method, expires, path)
hmac_body = hmac.new(key, hmac_body, sha1).hexdigest()
sig = hmac.new(key, hmac_body, sha1).hexdigest()
rest_uri = "{host}{path}?temp_url_sig={sig}&temp_url_expires={expires}".format(
host=host, path=path, sig=sig, expires=expires)
print rest_uri
Salida de ejemplo
https://objectstore.example.com/v1/your-bucket/your-object?temp_url_sig=ff4657876227fc6025f04fcf1e82818266d022c6&temp_url_expires=1423200992