6

Chuyển đổi sau đây có giữ để chuyển đổi từ Java servlet sang điểm cuối đám mây ứng dụng của Google không?chuyển đổi lược đồ servlet thành lược đồ điểm cuối ứng dụng động cơ

TỪ

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

ĐẾN

@ApiMethod(name = "save_blob_key", path = "save_blob_key" httpMethod = HttpMethod.POST) 
public void saveBlobKey(HttpServletRequest req) throws IOException { … } 

BỐI CẢNH:

Tôi cố gắng để sử dụng thiết bị đầu cuối để xử lý blobstore gọi lại.

Ref: https://developers.google.com/appengine/docs/java/blobstore/overview#Complete_Sample_App

VẤN ĐỀ:

Các hickup lớn ở đây là hai dòng sau đây dường như đòi hỏi lớp HttpServletRequest và tôi không biết liệu tôi có thể vượt qua nó để thiết bị đầu cuối.

BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); 
Map<String, List<BlobKey>> blobs = blobstoreService.getUploads(req); 

EDIT:

Tôi đã cố gắng khá nhiều tuyến đường để giải quyết vấn đề này. Mới nhất của tôi là combining blob servlet with endpoint api. Tuy nhiên tôi không thể nhận được mã để làm việc. Vì vậy, tiền thưởng dành cho bất kỳ ai cung cấp giải pháp hoặc thông tin thực sự dẫn đến giải pháp .

+0

Đã nhiều năm rồi, bạn có thể tìm được giải pháp không? – Micro

Trả lời

3

Bạn hiện không thể sử dụng Điểm cuối làm cuộc gọi lại đến cửa hàng blobstore blobstoreService.createUploadUrl. Xem trang này related answer. Có một yêu cầu tính năng mở để hỗ trợ mediaUpload, có khả năng sẽ cung cấp chức năng tương tự cho những gì bạn muốn. Vui lòng gắn dấu sao để hiển thị hỗ trợ và nhận cập nhật tự động.

Điều tôi khuyên bạn nên là một trong hai lựa chọn thay thế có thể, tùy thuộc vào lượng dữ liệu bạn đang cố tải lên.

Nếu bạn đang tải lên một lượng nhỏ dữ liệu blob, phù hợp với kho dữ liệu, hãy sử dụng loại ShortBlob (tối đa 500 byte) hoặc Blob (tối đa 1 MB) trong lớp thực thể Điểm cuối của bạn. Các điểm cuối sẽ xử lý tuần tự hóa trên phần cuối và sẽ mong đợi (và gửi lại) các chuỗi được mã hóa base64 qua các thư viện máy khách. Đây là một cách tiếp cận rất đơn giản, đơn giản.

Nếu bạn muốn cung cấp các đốm màu lớn hơn 1 MB, bây giờ, hãy sử dụng Google Cloud Storage JSON API. API này sử dụng cùng một thư viện máy khách như là Endpoints, vì vậy bạn không phải lo lắng về việc gộp thư viện khác với ứng dụng của mình. This page có ví dụ về việc chèn một đốm màu vào Google Cloud Storage bằng thư viện máy khách Java.

+0

Vấn đề về hỗ trợ thiết bị đầu cuối cho MediaUpload hiện đã gần 2,5 năm. Không có gì đã xảy ra. Điều này là điển hình cho các vấn đề AppEngine. Tôi tự hỏi khi nào Google sẽ loại bỏ AppEngine trong một mùa xuân hoặc mùa thu làm sạch? – rakensi

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