2009-07-08 40 views
5

Tôi đang xem viết một ứng dụng web Java trên Google App Engine. Tôi muốn có thể tải lên và phục vụ hình ảnh từ ứng dụng nhưng chỉ nhận ra rằng Datastore có giới hạn 1MB. Điều này hơi quá nhỏ đối với những bức ảnh đẹp. Có cách nào khác mà bạn có thể đề xuất làm việc này không? Có lẽ lưu trữ chúng như là nội dung tĩnh hơn là trong Datastore nhưng dường như không có API cho việc này.Lưu trữ hình ảnh đã tải lên trên Máy ứng dụng của Google với Java

Trả lời

4

Giờ đây, điều đó có thể thực hiện được trên GAE. Đơn giản chỉ cần bạn phải lưu trữ các tập tin của bạn trong Blobstore. Bạn có thể tải tập tin của bạn như thế này:

<body> 
<form action="<%= blobstoreService.createUploadUrl("/upload") %>" method="post" enctype="multipart/form-data"> 
    <input type="file" name="myFile"> 
    <input type="submit" value="Submit"> 
</form> 

Và sau đó để phục vụ tập tin từ servlet:

public void doGet(HttpServletRequest req, HttpServletResponse res) 
throws IOException { 
    BlobKey blobKey = new BlobKey(req.getParameter("blob-key")); 
    blobstoreService.serve(blobKey, res); 
1

Hôm nay không có cách nào dễ dàng, nhưng điều đó có thể thay đổi sau đó.

Điều tốt nhất bạn có thể làm ngay bây giờ là bỏ phiếu (sao) theo yêu cầu để hỗ trợ thêm File System Google AppEngine trong theo dõi vấn đề của họ:

2

Bạn không thể ghi vào hệ thống tệp trong App Engine, vì vậy nội dung tĩnh hiện đã hết - nhưng một API để lưu trữ và phân phát các đốm màu nằm trên lộ trình. Trong thời gian chờ đợi, đặt cược tốt nhất của bạn là chia tệp thành nhiều phần và lưu trữ chúng trong kho dữ liệu hoặc sử dụng một dịch vụ bên ngoài như S3.

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