2013-06-13 38 views
8

Tôi muốn lưu trữ tập tin json vào amazon s3 của tôi và sau đó lấy nó với yêu cầu ajax. Rất tiếc, có vẻ như s3 không cho phép ứng dụng loại nội dung/json ....Có thể lưu trữ json trên amazon s3?

Tôi nên lưu tệp của mình dưới dạng văn bản/đơn giản và sau đó thêm tiêu đề bằng php?

+1

Trong khi sử dụng tiêu đề loại nội dung chắc chắn là tốt, chúng không bắt buộc. Nếu bạn biết rằng một tệp nhất định chứa JSON, bạn chỉ có thể phân tích cú pháp văn bản trả lời bằng 'JSON.parse'. Cuối cùng, một tệp có chứa văn bản hoặc dữ liệu nhị phân. Cách xử lý dữ liệu là quyết định mà khách hàng phải thực hiện. –

+0

Thật không may sau khi một số thử nghiệm có vẻ như các json không được định dạng tốt nếu tôi lấy như văn bản/đồng bằng vì vậy tôi không thể phân tích nó ... – Tropicalista

+0

Điều đó không phải làm bất cứ điều gì với loại nội dung. JSON ** là ** văn bản. Có lẽ JSON của bạn không hợp lệ để bắt đầu? –

Trả lời

5

Tôi đã tìm thấy sự cố. Tôi đã phân tích cú pháp con trai một cách sai lầm.

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

Thay vì làm việc này:

$.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

Tôi không thể nói lý do tại sao thiết bị thứ hai hoạt động – Tropicalista

+2

Tôi nghĩ thiết bị đầu tiên hoạt động một cách kỳ diệu nếu loại nội dung được đặt chính xác. Thứ hai là phân tích cú pháp rõ ràng dưới dạng JSON (và có thể sẽ bị hỏng nếu bạn sửa loại nội dung). – BraveNewCurrency

2

Thay đổi Metadata 'Giá trị' ở Key: cặp giá trị gia tăng để 'Ứng dụng/json' từ thuộc tính tập tin, trong AWS S3 console.

+0

Chìa khóa trong trường hợp này là 'Content-Type'. –

Các vấn đề liên quan