Многокомпонентная загрузка файлов в Google Appengine с использованием jersey-1.7

Я написал приложение на Google Appengine с Jersey для обработки простой загрузки файлов. Это прекрасно работает, когда он был на майке 1.2. В более поздних версиях (текущая версия 1.7) введен @FormDataParam для обработки входных данных multipart / form. Я использую jersey-multipart и зависимость mimepull. Похоже, что новый способ сделать это - создать временные файлы в appengine, что, как мы все знаем, незаконно ...

Я что-то упускаю или делаю что-то не так, поскольку Джерси теперь предположительно совместим с AppEngine?

@POST 
@Path("upload") 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public void upload(@FormDataParam("file") InputStream in) { .... }

Вышеупомянутое не сработает при вызове с этими исключениями ...

/upload
java.lang.SecurityException: Unable to create temporary file
    at java.io.File.checkAndCreate(File.java:1778)
    at java.io.File.createTempFile(File.java:1870)
    at java.io.File.createTempFile(File.java:1907)
    at org.jvnet.mimepull.MemoryData.createNext(MemoryData.java:87)
    at org.jvnet.mimepull.Chunk.createNext(Chunk.java:59)
    at org.jvnet.mimepull.DataHead.addBody(DataHead.java:82)
    at org.jvnet.mimepull.MIMEPart.addBody(MIMEPart.java:192)
    at org.jvnet.mimepull.MIMEMessage.makeProgress(MIMEMessage.java:235)
    at org.jvnet.mimepull.MIMEMessage.parseAll(MIMEMessage.java:176)
    at org.jvnet.mimepull.MIMEMessage.getAttachments(MIMEMessage.java:101)
    at com.sun.jersey.multipart.impl.MultiPartReaderClientSide.readMultiPart(MultiPartReaderClientSide.java:177)
    at com.sun.jersey.multipart.impl.MultiPartReaderServerSide.readMultiPart(MultiPartReaderServerSide.java:80)
    at com.sun.jersey.multipart.impl.MultiPartReaderClientSide.readFrom(MultiPartReaderClientSide.java:139)
    at com.sun.jersey.multipart.impl.MultiPartReaderClientSide.readFrom(MultiPartReaderClientSide.java:77)
    at com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:474)
    at com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:538)

Кто-нибудь знает? Есть ли способ предотвратить создание временного файла с помощью mimepull?

11
задан Qamal Kosim-Satyaputra 10 June 2011 в 04:25
поделиться