1
단계로 크기가 모든 파일의 목록을 보여줍니다.Google 클라우드 스토리지 버킷에 이미지 파일을 저장 한 후에는 "0 바이트"나는 다음 한
1) Blob 저장소에 이미지를 저장 (이 필요합니다) 2) Blobstore에서 이미지를 가져와 GCS 버킷에 저장합니다.
이미지 파일을 GCS 버킷에 직접 저장하면 정상적으로 작동합니다. 하지만 Blobstore에서 가져오고 싶습니다.
Map<String, List<BlobInfo>> blobsData = blobstoreService.getBlobInfos(req);
for (String key : blobsData.keySet())
{
for(BlobInfo blob:blobsData.get(key))
{
byte[] b = new byte[(int)blob.getSize()];
BlobstoreInputStream in = new BlobstoreInputStream(blob.getBlobKey());
in.read(b);
GcsService gcsService = GcsServiceFactory.createGcsService();
GcsFilename filename = new GcsFilename("casfilestorage", blob.getFilename());
GSFileOptionsBuilder builder = new GSFileOptionsBuilder()
.setAcl("public_read")
.setBucket(BUCKET_NAME)
.setKey(blob.getFilename())
.setMimeType(blob.getContentType());
AppEngineFile writableFile = fileService.createNewGSFile(builder.build());
boolean lock = true;
writeChannel = fileService.openWriteChannel(writableFile, lock);
os = Channels.newOutputStream(writeChannel);
UploadOptions uploadOptions = UploadOptions.Builder.withGoogleStorageBucketName("casgaestorage");
//String uploadUrl = blobstoreService.createUploadUrl("/serve", uploadOptions);
os.close();
writeChannel.closeFinally();
in.close();
}
}
,하지만 당신이 그 바이트 쓰기 어디서 볼 수 없습니다 출력 스트림에 삽입합니다. –