Domanda

Recentemente ho refactoring po 'del mio codice per le righe roba in un db usando 'i dati di carico' e funziona benissimo - tuttavia per ogni record che ho devo caricare i file su 2 S3 - questo distrugge totalmente il magnifico aggiornamento velocità mi era ottenere. Mentre ero in grado di elaborare 600+ di questi documenti / seconda ora sono gocciolando in in 1 / secondo a causa di s3.

Quali sono i tuoi soluzioni per questo? Guardando l'API vedo che è per lo più RESTful, quindi non sono sicuro di cosa fare - forse dovrei solo bastone tutto questo nel database. I file di testo sono di solito non più di 1.5k. (L'altro file che roba lì è una rappresentazione XML del testo)

I già cache di questi file in richieste HTTP al mio server web in quanto sono utilizzati un bel po '.

A proposito: la nostra attuale implementazione utilizza Java; Non ho ancora provato le discussioni, ma che potrebbe essere un'opzione

Raccomandazioni?

È stato utile?

Soluzione

È possibile utilizzare il [putObjects] [1] la funzione di Jets3t per caricare più file in una sola volta.

In alternativa è possibile utilizzare un thread in background per caricare S3 da una coda, e aggiungere i file alla coda dal codice che carica i dati nel database.

[1]: http://jets3t.s3.amazonaws.com/api/org/jets3t/service/multithread/S3ServiceMulti.html#putObjects (org.jets3t.service.model.S3Bucket , org. jets3t.service.model.S3Object [])

Altri suggerimenti

Ho appena trovato una bella soluzione per caricare un'intera directory con php :

$client->uploadDirectory(
  SOURCE_FOLDER,
  YOUR_BUCKET_NAME,
  DESTINATION,
  array(
    'concurrency' => 5,
    'debug'          => TRUE,
    'force'            => FALSE,
    'params'        => array(
      'ServerSideEncryption' => 'AES256',
    ),
  )
);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top