2013-06-13 24 views
8

Vorrei archiviare il file json sul mio amazon s3 e quindi recuperarlo con una richiesta Ajax. Sfortunatamente sembra che s3 non permetta l'applicazione del tipo di contenuto/json ....È possibile memorizzare json su Amazon s3?

Dovrei salvare il mio file come text/plain e quindi aggiungere header con php?

+1

Durante l'utilizzo di intestazioni di tipo contenuto è certamente buono, non sono necessari. Se sai che un certo file contiene JSON, puoi semplicemente analizzare il testo di risposta con 'JSON.parse'. Alla fine, un file contiene comunque testo o dati binari. Come elaborare i dati è una decisione che il cliente deve prendere. –

+0

Purtroppo dopo alcuni test sembra che il json non sia ben formattato se recupero come text/plain in modo da non poterlo analizzare ... – Tropicalista

+0

Questo non deve fare nulla con il tipo di contenuto. JSON ** è ** testo. Forse il tuo JSON non è valido per cominciare? –

risposta

5

Ho trovato il problema. Stavo analizzando il json nel modo sbagliato.

$.ajax({ 
    url:"https://s3.amazonaws.com/myBucket/myfile.json", 
    type:"GET", 
    success:function(data) { 
      console.log(data.property) 
    } 
}) 

Invece questo funziona:

$.ajax({ 
    url:"https://s3.amazonaws.com/myBucket/myfile.json", 
    type:"GET", 
    success:function(data) { 
     var obj = jQuery.parseJSON(data); 
     if(typeof obj =='object'){ 
      console.log(obj.property) 
     } 
    } 
}) 
+0

Non posso dire perché il secondo funziona – Tropicalista

+2

Penso che il primo funzioni magicamente se il tipo di contenuto è impostato correttamente. Il secondo è in modo esplicito l'analisi come JSON (e probabilmente si interromperà se si risolve il tipo di contenuto). – BraveNewCurrency

2

Modifica Metadati 'Valore' a Key: coppia di valori per 'application/json' dalle proprietà del file, nella console AWS S3.

+0

La chiave in questo caso è 'Content-Type'. –