In articolul urmator ne propunem sa exemplificam cum poate fi folosit Digi
Storage in domeniul hostingului. Din ce in ce mai multe site-uri web trebuie sa incorporeze fisiere audio, video dar si multe poze. Toate acestea pot ocupa foarte mult spatiu pe serverele care asigura hostingul site-ului, mai ales daca pozele si filmele sunt stocate la o rezolutie mare. Digi Storage poate rezolva aceste probleme intr-un mod foarte simplu : - Toate fisierele de dimensiuni medii si mari se pot stoca doar in Digi Storage
- Directoarele din Digi Storage care contin aceste fisiere se vor partaja printr-un link de incarcare
- In acest fel , fiecare fisier stocat va putea fi accesat de oriunde peste HTTP printr- un URL generat de procesul de partajare
- In codul sursa al paginilor din site-ul initial nu mai includem calea locala (de pe server) catre poze sau filme, ci noile URL-ul generate de partajare
In acest fel, site-ul nostru este mult mai scalabil pentru ca are nevoie de un spatiu mult mai mic pe server, avem redundanta datelor asigurata de Digi Storage (nu mai trebuie sa facem backup permanent la poze si filme) iar traficul generat de descarcarea fisierelor respective (full-size) se va face de catre clienti direct din Digi Storage. Site- ul original va avea astfel mai multa banda libera , o incarcare mai mica pe resursele hardware dar va ocupa si un spatiu foarte mic pe serverul de hosting. Exemplul de mai jos este in scop pur demonstrativ, detaliile de implementare se pot schimba in functie de nevoile propriu-zise ale site-ului dar ideile de mai sus ramin valabile. Ne propunem sa aratam cum putem folosi o galerie web de imagini (dar care poate fi foarte bine orice blog) si Digi Storage. Initial galeria de imagini citeste si afiseaza imaginile gasite intr-un folder 'img/demopage'. Noi ne-am propus sa afisam pozele stocate in Digi Storage utilizand un link de descarcare (download link), iar pentru a le putea afisa ne-am folosit de urmatoarele tool-uri: galerie lightbox http://lokeshdhakar.com/projects/lightbox2/ arhiva paginare php http://www.sitepoint.com/perfect-php-pagination/ script API https://storage.rcs-rds.ro/help/developers/example Scriptul 'script.py' de afisare a pozelor aflate in folderul din cloud va fi apelat cu un parametru 'x', unde 'x' reprezinta numarul paginii care se afiseaza in browser. Acest script API returneaza cate 16 nume de fisiere imagini din cloud impreuna cu dimensiunea array-ului (acesta ultima variabila se foloseste pentru paginare).
script.py: #!/usr/bin/python import requests import json import getpass import sys api_base = 'https://storage.rcs-rds.ro' s = requests.Session() # get auth token token = s.get(api_base + '/token', headers = { 'X-Koofr-Email': 'email@domeniu.tld', 'X-Koofr-Password': 'parola' }).headers['X-Koofr-Token'] s.headers['Authorization'] = 'Token ' + token # get mount (Digi Cloud, Dropbox...) mounts = s.get(api_base + '/api/v2/mounts').json()['mounts'] mount = [x for x in mounts if x['name'] == 'Digi Cloud'][0] # list files files = s.get(api_base + '/api/v2/mounts/' + mount['id'] + '/files/list', params = {'path': '/Upload'}).json()['files'] stack = [] j = int(sys.argv[1]) macs = j * 16 i = macs - 16 for file in files: stack.append(file['name']) if macs > len(stack): macs = len(stack) for x in range(i, macs): print stack[x]
print len(stack)
Descarcati si extrageti arhivele de la inceputul articolului (arhiva paginated- demo.zip trebuie extrasa in folderul 'lightbox' din arhiva galeriei) in rootdir-ul serverului web, conform exemplului de mai jos:
Fisierul 'screen.css' a fost modificat pentru a permite afisarea a patru imagini putin mai mari decat arhiva originala aranjate pe 4 randuri. La final galeria va arata ca imaginea de mai jos: