Grails 通过将多部分文件转换为java.io.file进行上载

Grails 通过将多部分文件转换为java.io.file进行上载,grails,file-upload,picasa,Grails,File Upload,Picasa,目前,我所做的只是: 获取所有文件: def itemPhotos = request.getMultiFileMap().item 将其传输到服务器的tmp文件夹: for(itemPhoto in itemPhotos) { if(itemPhoto.getOriginalFilename().length() == 0) continue String path = grailsAttributes.getApplicationContext()

目前,我所做的只是:

  • 获取所有文件:

    def itemPhotos = request.getMultiFileMap().item
    
  • 将其传输到服务器的tmp文件夹:

    for(itemPhoto in itemPhotos) {
        if(itemPhoto.getOriginalFilename().length() == 0)
            continue
        String path = grailsAttributes.getApplicationContext()
                .getResource("/../tmp").getFile().toString() + File.separatorChar + itemPhoto.getOriginalFilename()
        itemPhoto.transferTo(new File(path))
        itemImages.add(new File(path))
    }
    
  • 并将其上传至Picasa网络相册:

    if(!itemImages.isEmpty()) {
        def photoLinks = photoService.uploadImages(itemImages, itemInstance.id)
    }
    
  • 并在使用后删除:

    for(itemImage in itemImages)
        itemImage.delete()
    
因为,Picasa只有一种方法可以上传
java.io.File
的文件。我必须先将文件传输到本地磁盘,然后上传。我知道当使用多部分文件上传时,已经创建了一个临时文件,但为了简单起见,我正在传输它

由于我将要上传此应用程序,并且每次上传的应用程序数量会很大,我如何才能减少此过程的时间消耗,并消除传输和删除文件的负担


任何建议都将不胜感激。

扩展或替换
picasa服务
,以便它可以将请求中的文件(作为流)直接传输到目标。我认为使用
HttpBuilder
进行一个相对简单的实现就可以了

谢谢,我将尝试使用HttpBuilder。