Google App Engine에서 앱을 실행 중입니다.app-engine - java에서 GCS의 pdf 파일을 가져 오는 방법
google-cloud-storage의 pdf 파일에서 txt를 가져 오려고합니다. 나는 그것이을 성공 로컬 내 코드를 실행할 수 있지만에서 appengine에서 실행 때 여기
org.pdfbox.exceptions.WrappedIOException
에 실패 할 때
내 코드입니다 :
import com.google.cloud.storage.*;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
public class Download {
public static String perform(String bucket, String file) throws IOException {
byte[] fileByte = download(bucket, file);
String pdfFileTxt = pdf2txt(fileByte);
return pdfFileTxt;
}
public static byte[] download(String bucketName, String fileId) throws IOException {
Storage storage = StorageOptions.getDefaultInstance().getService();
BlobId blobId = BlobId.of(bucketName, fileId);
Blob blob = storage.get(blobId);
return blob.getContent();
}
public static String pdf2txt(byte[] byteArr) throws IOException {
InputStream stream = new ByteArrayInputStream(byteArr);
PDFParser parser = new PDFParser(stream);
parser.parse();
PDDocument pdDoc = new PDDocument(parser.getDocument());
return new PDFTextStripper().getText(pdDoc);
}
}
코드가 org.pdfbox.exceptions.WrappedIOException
와 parser.parse();
실패 - 다른 메시지가 추가되었습니다. (
스토리지에서 다운로드 - 실제로 성공합니다. 데이터를 로그하면 다음과 같이 표시됩니다 :
%PDF-1.3
%����
7 0 obj
<</Linearized 1/L 7945/O 9/E 3524/N 1/T 7656/H [ 451 137]>>
endobj
13 0 obj
<</DecodeParms<</Columns 4/Predictor 12>>/Filter/FlateDecode/ID[<4DC91A1875A6D707AEC203BB021C93A0><F6C92B368A8A13408457A1D395A37EB9>]/Index[7 21]/Info 6 0 R/Length 52/Prev 7657/Root 8 0 R/Size 28/Type/XRef/W[1 2 1]>>stream
h�bbd``b`� ��H0� 6G ��#�4�,#��Ɲ_ L��
endstream
endobj
startxref
0
%%EOF
... more ...
이제이 문제를 극복 할 수 있습니까? 어쩌면 다른 라이브러리를 사용할 것인가? 코드가 appengine에서 실행되기 때문에 이러한 오류를 추적하는 것은 매우 어렵습니다.
가능한 복제 [다운로드 pdf 파일 및 애플리케이션 엔진에 구글 클라우드 스토리지에서 TXT를 얻을] (http://stackoverflow.com/questions/42071045/download- pdf 파일 및 Google TXT에서 Google 클라우드 스토리지 온 앱 엔진) – Aaron