2014-08-31 4 views
0

Я пытаюсь использовать приведенный ниже код для загрузки изображения в blobstore с помощью curl, и я получаю следующую ошибку: «Должен быть вызван из запроса обратного вызова загрузки blob».Google Blobstore добавить с помощью curl POST

Однако, если я использую форму с действием он закачивать:

blobstoreService.createUploadUrl("/upload") 

=== Servlet код ===

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

@SuppressWarnings("deprecation") 
@Override 
public void doPost(HttpServletRequest req, HttpServletResponse res) 
    throws ServletException, IOException { 

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

    } 

}

Кто-нибудь знает, как я могу включить "blobstoreService.createUploadUrl ("/upload ")" в сервлет, чтобы я мог выполнять запросы на завивки как таковые:

curl -XPOST http://localhost:8888/upload -F "[email protected]" 

Я использую следующий пример со страницы разработчиков Google:

https://developers.google.com/appengine/docs/java/blobstore/

ответ

1

Это способ, Blobstore работы:

  1. Вы запросить URL, чтобы сделать загрузку (предоставление некоторых Ресурсы).
  2. Клиент использует этот URL для публикации (это означает, что запрос отправляется на серверы Blobstore, а не на ваше приложение).
  3. Серверы Blobstore получают данные, сохраняют их и пересылают запрос в ваше приложение.
  4. Вы получаете ключи и запускаете свой код, а затем возвращаетесь к клиенту.

То, что я пытаюсь сказать, что вы должны позволить Blobstore делать это работа, это означает, что вы не можете иметь фиксированный URL для загрузки, вы необходимо первым попросить URL, чтобы оставлять сообщения. Именно так была разработана система.

Таким образом, вам нужно будет сделать 2 curl звонки, один для запроса URL-адреса, а затем использовать его для публикации, а не наоборот.

Конечно, это не так сексуально или просто, но другие решения были бы сложными и даже дорогими.

+0

Привет Хайме, вы знаете, как или какие-либо ресурсы, как сделать первый завиток для запроса url? – codeBarer

+0

Просто добавьте обработчик, который возвращает результат 'blobstoreService.createUploadUrl ("/upload ")'. –

Смежные вопросы