2017-08-23 8 views
0
public void upload(List<CommonsMultipartFile> fileUpload) { 
     for(CommonsMultipartFile file : fileUpload) 
      { 
       try 
       { 
        String contentType = file.getContentType(); 
        String newName = generateFileKey(file); 
        AmazonS3UploadRequest uploadRequest = new AmazonS3UploadRequest.Builder() 
          .bucket(bucket) 
          .contentType(contentType) 
          .newResourceName(newName) 
          .resourceStream(file.getInputStream(), Long.valueOf(file.getBytes().length)) 
          .build(); 
        uploadToS3(uploadRequest); 
       } 
       catch (Exception e) 
       { 
        LOG.error("Error while uploading files to s3: ", e); 
        throw new ServiceRuntimeException("Error writing file to s3 bucket"); 
       } 
      } 
    } 

    public String uploadToS3(AmazonS3UploadRequest uploadRequest) { 

     ObjectMetadata objectMetadata = new ObjectMetadata(); 
     objectMetadata.setContentLength(uploadRequest.getResourceLength()); 
     objectMetadata.setContentType(uploadRequest.getContentType()); 
     Upload upload = transferManager.upload(uploadRequest.getBucket(), uploadRequest.getNewResourceName(), uploadRequest.getResourceStream(), objectMetadata); 
    } 

空になっている私はアマゾンS3バケットにPDFファイルをアップロードしています、すべてのファイルが 正常にアップロードが、大きなファイル(15ページPDFなど)が空になっています。 Amazon transferManager - は春から注入されています。 Amazonの資格はTansferManagerの.propertyファイルから注入されます。 注:.png/.jpegファイルも空としてアップロードされています。 私は混乱しています...何が起こっているのですか?いくつかの入力が必要です。 ありがとうございます。ファイルのアップロード:アップロードが正常に動作しますが、いくつかの大きなファイルが

答えて

0

は、ストリーミングAPIを通してのApache CommonsのからFileUploadクラスで試してみてください。そのページのコードスニペットは正常に動作します。

0

あなたのPDFをamazon s3にアップロードするにはこのコードを試してください。あなたはAWS S3アプリIDと秘密鍵を持っていると仮定します。

AWSCredentials credentials = new BasicAWSCredentials(appId, appSecret); 
AmazonS3 s3Client = new AmazonS3Client(credentials); 

String bucketPath = "YOUR_S3_BUCKET"; 

public void upload(List <CommonsMultipartFile> fileUpload) { 
    for (CommonsMultipartFile file: fileUpload) { 
     try { 
      String contentType = file.getContentType(); 
      String pdfName = generateFileKey(file); 
      InputStream is = file.getInputStream(); 
      ObjectMetadata meta = new ObjectMetadata(); 
      meta.setContentLength(is.available()); 
      s3Client.putObject(new PutObjectRequest(bucketPath, pdfName, is, meta).withCannedAcl(CannedAccessControlList.PublicRead)); 
     } catch (Exception e) { 
      LOG.error("Error while uploading files to s3: ", e); 
      throw new ServiceRuntimeException("Error writing file to s3 bucket"); 
     } 
    } 
} 
関連する問題