window.pipedriveLeadboosterConfig = { base: leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on juba olemas') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() TASUTA ARENDUS AWS S3 JA PAPERCLIPIGA - The Codest
The Codest
  • Meie kohta
  • Teenused
    • Tarkvaraarendus
      • Frontend arendus
      • Backend arendus
    • Staff Augmentation
      • Frontend arendajad
      • Backend arendajad
      • Andmeinsenerid
      • Pilveinsenerid
      • QA insenerid
      • Muud
    • See nõuandev
      • Audit ja nõustamine
  • Tööstusharud
    • Fintech & pangandus
    • E-commerce
    • Adtech
    • Healthtech
    • Tootmine
    • Logistika
    • Autotööstus
    • IOT
  • Väärtus
    • CEO
    • CTO
    • Tarnejuht
  • Meie meeskond
  • Case Studies
  • Tea kuidas
    • Blogi
    • Kohtumised
    • Veebiseminarid
    • Ressursid
Karjäärivõimalused Võtke ühendust
  • Meie kohta
  • Teenused
    • Tarkvaraarendus
      • Frontend arendus
      • Backend arendus
    • Staff Augmentation
      • Frontend arendajad
      • Backend arendajad
      • Andmeinsenerid
      • Pilveinsenerid
      • QA insenerid
      • Muud
    • See nõuandev
      • Audit ja nõustamine
  • Väärtus
    • CEO
    • CTO
    • Tarnejuht
  • Meie meeskond
  • Case Studies
  • Tea kuidas
    • Blogi
    • Kohtumised
    • Veebiseminarid
    • Ressursid
Karjäärivõimalused Võtke ühendust
Tagasi nool TAGASI
2016-09-30
Tarkvaraarendus

TASUTA ARENDUS AWS S3 JA PAPERCLIPIGA

Bartosz Zurkowski

Viimastel aastatel on veebipõhine salvestusruum muutunud peavooluks, pakkudes väga hästi skaleeritavat arhitektuuri, täiustatud turvalisust ja laialdast juurdepääsu andmetele. Üks populaarsemaid salvestusteenuseid on Amazoni Simple Storage Service, tuntud ka kui S3.

Amazon S3 on äärmiselt võimas teenus, mis on Amazon Web Services'i keskmes. Kuid väljaspool tootmiskeskkonda võib S3-ga töötamine olla keeruline. See hõlmab juurdepääsu võtmete edasiandmist, kasutajakontode loomist ja usaldusväärse võrguühenduse säilitamist - rääkimata sellest, et see maksab raha. õnneks on olemas tööriist, mis aitab seda probleemi lahendada. FakeS3 on kerge server, mis simuleerib tõelise S3-i käitumist. See vastab samadele kõnedele, millele Amazon S3 vastab, ja salvestab üleslaetud failid teie kohalikku failisüsteemi - Amazon'i teenusele ei tehta ühtegi päringut. Kuigi gem ei toeta kõiki S3-i käske, on rakendatud API piisav enamiku rakenduste kasutusjuhtumite jaoks.

Selles artiklis tutvustan lähenemist, kuidas integreerida AWS ja FakeS3 koos Paperclipiga - populaarne faili manuste raamatukogu Active Record'i jaoks. Paperclip ja S3 koos pakuvad tõhusat failihoiusüsteemi, mis ühendab kasulikke Paperclip'i põhifunktsioone (nagu valideerimiste haldamine ja pilditransformatsioonid) veebipõhise salvestamise eelistega. Kuigi nende tööriistade konfigureerimine ei ole ilmselge ja nõuab üksikasjalikku dokumentatsiooni kaevamist ning paljude pärli-spetsiifiliste probleemide lahendamist, tasub kulutada veidi aega, et muuta arendus kiiremaks ja tõhusamaks.

Mis on meie eesmärk?

Kirjeldatud vahendite integreerimine nõuab kolme etappi:

  1. FakeS3 gemi poolt pakutava S3 võltsserveri käivitamine taustal.
  2. AWS S3 kliendi konfigureerimine, et delegeerida kõik päringud käivitatud võltsserverile.
  3. Paperclip'i konfigureerimine, et kasutada võltsitud S3-päätepunkti ehitatud ressursi URL-ides.

Paigaldamine

Alustame vajalike pärlite paigaldamisega:

# Gemfile

gem "paberklamber"
gem "aws-sdk", "~> 1.6"

gem "fakes3", group: [:development, :test]

Veenduge, et installite aws-sdk versiooni 1.6. Paperclip, mis kasutab SKD-d Amazoni teenuse salvestusruumi haldamiseks, ei tööta hästi selle pärli kõrgemate versioonidega. Selle põhjuseks on olulised muudatused SDK API-s, mis toodi versiooniga 2.0.

Pidage ka meeles, et FakeS3 peamine eesmärk on minimeerida sõltuvusi tööajast. See on pigem arendusvahend, et testida S3-kõnesid oma kood pigem kui tootmisserver, mis soovib dubleerida S3-funktsioone. Seetõttu peaksite lisama gemi ainult arendus- ja testrühma.

AWS konfiguratsioon

AWS SDK pakub spetsiaalset abimeetodit, mis vastutab konfiguratsiooni laadimise eest. See laadib vaikimisi konfiguratsiooni aadressilt config/aws.yml, ekstraheerib selle parameetrid praeguse keskkonna jaoks ja edastab need AWS kliendile. Kõigepealt kutsuge järgmist meetodit initsialiseerijas:

# config/initializers/aws.rb config/initializers/aws.rb

AWS::Rails.load_yaml_config

Nüüd, kui meil on konfiguratsioonifail korralikult laetud, saame jätkata selle sisu määramisega:

# config/aws.yml

development: &development
    access_key_id: "abc"
    secret_access_key: "abc"
    s3_endpoint: "localhost"
    s3_port: 10001
    s3_force_path_style: true
    use_ssl: false

test: *development

Käsitleme kõiki parameetreid ükshaaval:

  • access_key_id, secret_access_key - AWSi kliendi volitused, mis on vajalikud teie Amazoni kontole juurdepääsu saamiseks. Neid ignoreeritakse võlts S3 server seega kohandatud väärtused liivakasti keskkondades.
  • s3_endpoint, s3_port- S3 lõpp-punkti spetsifikatsioon. Kasutame neid parameetreid, et asendada reaalne S3-päätepunkt võltsitud lõpp-punktiga, mille käivitab pärl FakeS3 - kõik päringud Amazoni teenusele delegeeritakse nüüd kohalikule võltsserverile.
  • s3_force_path_style - S3 aktsepteerib kahte stiili, et lisada ämbri nimi URL-i. Saate valida, kas ämbri nimi paigutatakse domeeni stiilis (bucket.s3.amazonaws.com) või tee stiilis (s3.amazonaws.com/bucket). Selleks, et hoida asjad lihtsad ja vältida ämbri alamdomeeni ja tagasipöördumise aadressi kaardistamisega seotud lisakonfiguratsiooni, eelistan arenduskeskkonnas domeeni stiili asemel tee-stiili.
  • use_ssl - sunnib AWS SDK-d kasutama HTTPS-i vanilla HTTP asemel. Meil on vaja see valik välja lülitada, sest FakeS3 gem ei toeta HTTPS päringuid, mida AWS klient vaikimisi täidab.

Tootmiskeskkonna seadistamine on üsna lihtne:

# config/aws.yml

production: &production
    access_key_id:     
    secret_access_key: 

staging: *production

Seekord on aga tegemist tõelise S3-teenusega, mistõttu peate esitama autentsed AWS-i volitused.

Võimalike turvariskide tõttu on hea tava hoida salajased väärtused, nagu näiteks juurdepääsu võtmed, versioonihaldussüsteemist eemal, näiteks kasutades keskkonnamuutujaid. Me kasutame ERB-i, et süstida selle väärtused konfiguratsioonifaili.

Kirjaklambrite konfiguratsioon

Nüüd on aeg Paperclipiga silmitsi seista ja sundida seda juba konfigureeritud S3-kliendiga kenasti töötama. Paperclip'i konfigureerimise peamine eesmärk on saada salvestusruumi tee, mis leiab fakeserveri poolt majutatud ressursid:

localhost:10001/:bucket_name/:path

Alustame jälle arenduskeskkonnast:

# config/paperclip.yml

development: &development
    ladustamine: :s3
    bucket: "development"
    s3_host_name: "localhost"
    url: ":s3_alias_url"
    path: "id_partition/:style/:failinimi.:extension"
    s3_host_alias: "localhost:10001/development"

test: *development
  • ladustamine - määrab salvestuskandja (vaikimisi kohalik failisüsteem). Kuna me kasutame AWS S3-i, siis peame selle muutma järgmiselt :s3.
  • ämber - selle S3-ämbri nimi, kus teie faile hoitakse. Kui ämbrit ei ole olemas, püüab Paperclip selle luua.
  • url - seatud :s3_alias_url paneb Paperclip'i tegema S3 ämbri hostinimele aliase väärtusega, mis on määratud väärtusega :s3_host_alias parameeter.
  • s3_host_alias - vaikimisi S3-ämbri host'i alias. Pange tähele, et host, port ja ämbri nimi vastavad AWS-i kliendi konfiguratsioonile.
  • tee - muster võtmete jaoks, mille all failid salvestatakse ämbrisse. Võtmed peaksid olema korvi sees unikaalsed, nagu failinimed. Kuna S3 ei toeta katalooge, saate kasutada kataloogi / sümbol kataloogistruktuuride simuleerimiseks.
# config/paperclip.yml

production: &production
    ladustamine: :s3
    bucket:  
    url:     ":s3_domain_url"
    path:    ".:class/:attachment/:id_partition/:style/:filename.:extension"

staging: *production

Sarnaselt AWS-i mandaatidele peetakse ka bucket'i nime salajaks väärtuseks, mida tuleks hoida väljaspool teie koodibaasi. Soovitan selle nime salvestada keskkonnamuutujasse.

Lõpuks ühendage konfiguratsioon Paperclip'i vaikimisi valikutesse initsialiseerijas:

# config/initializers/paperclip.rb config/initializers/paperclip.rb

paperclip_defaults = Rails.application.config_for :paperclip
paperclip_defaults.symbolize_keys!

Paperclip::Attachment.default_options.merge! paperclip_defaults

Käivitatud võltsingud3

Nii AWS-i kui ka Paperclip'i konfiguratsioonid sisaldavad viidet kohalikule S3 võltsserverile, mida eeldatavasti käivitatakse all localhost:10001. Enne arendustegevuses töötamist peaksite käivitama serveri järgmise käsuga (mida pakub FakeS3 gem):

fakes3 -r public/system -p 10001

Edastatud parameetrid on järgmised:

  • root -r - juurkataloog, mille alla üleslaaditud failid salvestatakse. Kaaluge selle väljajätmist VCS-st, kui te ei soovi, et teie repositooriumis hoitakse üleslaetud faile.
  • port -p - selle pordi number, millel kohalik server töötab.

Kui kasutate oma rakenduses Foremani protsesside haldamiseks, võib olla mugav lisada Procfile'ile järgmine kirje:

# Procfile

fakes3: fakes3 -r ${FAKES3_STORAGE_PATH:-public/system} -p ${FAKES3_PORT:-10001}

See aitab säästa aega, mis kulub fakeserveri käivitamisele iga kord, kui teil on vaja arendada mõningaid S3-ga seotud funktsioone.

Kokkuvõte

Oleme seadistanud AWS-i kliendi delegeerima kõik päringud kohalikule võltsserverile, seadistanud Paperclip'i kasutama võlts S3-päätepunkti ehitatud ressursi URL-ides ja käivitanud võlts S3 gemi poolt pakutava võltsserveri, mis salvestab kõik failid kohalikus failisüsteemis.

Selle tulemusel muutusime sõltumatuks internetiühendusest ja säästsime raha, muutes meie arendustegevuse kiiremaks ja usaldusväärsemaks.

Seotud artiklid

Tarkvaraarendus

Tulevikukindlate veebirakenduste loomine: The Codest ekspertide meeskonna ülevaade

Avastage, kuidas The Codest paistab skaleeritavate, interaktiivsete veebirakenduste loomisel silma tipptehnoloogiatega, mis pakuvad sujuvat kasutajakogemust kõigil platvormidel. Saate teada, kuidas meie eksperditeadmised aitavad kaasa digitaalsele ümberkujundamisele ja äritegevusele...

THECODEST
Tarkvaraarendus

Top 10 Lätis asuvat tarkvaraarendusettevõtet

Tutvu Läti parimate tarkvaraarendusettevõtete ja nende innovaatiliste lahendustega meie viimases artiklis. Avastage, kuidas need tehnoloogiajuhid saavad aidata teie äri edendada.

thecodest
Enterprise & Scaleups lahendused

Java tarkvaraarenduse põhitõed: A Guide to Outsourcing Successfully

Tutvuge selle olulise juhendiga, kuidas edukalt outsourcing Java tarkvara arendada, et suurendada tõhusust, pääseda ligi eksperditeadmistele ja edendada projekti edu The Codest abil.

thecodest
Tarkvaraarendus

Ülim juhend Poola allhanke kohta

outsourcing kasv Poolas on tingitud majanduslikust, hariduslikust ja tehnoloogilisest arengust, mis soodustab IT kasvu ja ettevõtlussõbralikku kliimat.

TheCodest
Enterprise & Scaleups lahendused

Täielik juhend IT-auditi vahendite ja tehnikate kohta

IT-auditid tagavad turvalised, tõhusad ja nõuetele vastavad süsteemid. Lisateavet nende tähtsuse kohta leiate kogu artiklist.

The Codest
Jakub Jakubowicz CTO & kaasasutajad

Tellige meie teadmistebaas ja jääge kursis IT-sektori eksperditeadmistega.

    Meie kohta

    The Codest - rahvusvaheline tarkvaraarendusettevõte, mille tehnoloogiakeskused asuvad Poolas.

    Ühendkuningriik - peakorter

    • Büroo 303B, 182-184 High Street North E6 2JA
      London, Inglismaa

    Poola - kohalikud tehnoloogiakeskused

    • Fabryczna büroopark, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varssavi, Poola

      The Codest

    • Kodu
    • Meie kohta
    • Teenused
    • Case Studies
    • Tea kuidas
    • Karjäärivõimalused
    • Sõnastik

      Teenused

    • See nõuandev
    • Tarkvaraarendus
    • Backend arendus
    • Frontend arendus
    • Staff Augmentation
    • Backend arendajad
    • Pilveinsenerid
    • Andmeinsenerid
    • Muud
    • QA insenerid

      Ressursid

    • Faktid ja müüdid koostööst välise tarkvaraarenduspartneriga
    • USAst Euroopasse: Miks otsustavad Ameerika idufirmad Euroopasse ümber asuda?
    • Tech Offshore arenduskeskuste võrdlus: Euroopa (Poola), ASEAN (Filipiinid), Euraasia (Türgi).
    • Millised on CTO ja CIOde peamised väljakutsed?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2025 by The Codest. Kõik õigused kaitstud.

    etEstonian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch elGreek etEstonian