7

Tôi tưởng tượng quá trình sử dụng blobstore để lưu trữ hình ảnh kết thúc bằng cách lưu khóa blob trong kho dữ liệu. Vì vậy, trong đoạn mã sau, được cho là nằm trong phần phụ trợ của tôi, tại sao tôi cần một URL chuyển hướng vì tôi đã có khóa blob? Tại sao tôi không chỉ lưu khóa blob trong kho dữ liệu của tôi và sau đó trả lại?Tại sao mã tải lên blobstore có url chuyển hướng

public class Upload extends HttpServlet { 
    private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); 

    public void doPost(HttpServletRequest req, HttpServletResponse res) 
     throws ServletException, IOException { 

     Map<String, BlobKey> blobs = blobstoreService.getUploadedBlobs(req); 
     BlobKey blobKey = blobs.get("myFile"); 

     if (blobKey == null) { 
      res.sendRedirect("/"); 
     } else { 
      res.sendRedirect("/serve?blob-key=" + blobKey.getKeyString()); 
     } 
    } 
} 

Mã này là từ hướng dẫn: https://developers.google.com/appengine/docs/java/blobstore/overview#Complete_Sample_App

+2

Bạn muốn lưu khóa blob vào kho dữ liệu của mình. Bản demo chỉ gửi trình duyệt của khách hàng đến chế độ xem của tệp được tải lên cho mục đích demo. Bạn không cần phải sao chép điều đó. – dragonx

+2

@dragonx, có lẽ bạn là người cho công việc. Sẽ tốt hơn nếu ai đó có kiến ​​thức thích hợp một lần và cho tất cả những câu hỏi này về blobstore-android-endpoint để nghỉ ngơi. – kasavbere

Trả lời

5

Bởi vì Google lưu trữ các hình ảnh trên một dịch vụ khác nhau (được sử dụng bởi Picassa cũng). Mục đích là để tối ưu hóa bộ nhớ và cung cấp cho nhà phát triển một số công cụ để thao tác dễ dàng những hình ảnh đó.

Xem thông tin này trong các tài liệu để xem những gì bạn có thể làm: https://developers.google.com/appengine/docs/java/images/overview

Để tránh chuyển hướng, bạn nên sử dụng phương pháp này để phục vụ hình ảnh: getServingUrl()

Từ các tài liệu:

Phương thức getServingUrl() cho phép bạn tạo URL ổn định, chuyên dụng để phân phát hình thu nhỏ hình ảnh phù hợp với web. Bạn chỉ cần lưu trữ bản sao duy nhất của hình ảnh ban đầu của mình trong Blobstore và sau đó yêu cầu một URL hình ảnh có hiệu suất cao là . URL đặc biệt này có thể phục vụ hình ảnh đó tự động thay đổi kích thước và/hoặc cắt và phân phát từ URL này không phải chịu bất kỳ tải CPU hoặc tải động nào trên ứng dụng của bạn (mặc dù băng thông vẫn bị tính phí như bình thường). Hình ảnh được phục vụ với độ trễ thấp từ cơ sở hạ tầng không được tối ưu hóa cao.

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