1

Google ドキュメントを使用してファイルをブロブ ストアに書き込む

以下の方法でファイルを Google Cloud に保存できます。

 //My servlet Class
  private StorageService storage = new StorageService();
  FileService fileService = FileServiceFactory.getFileService();
  AppEngineFile file = fileService.createNewBlobFile(mime, fileName);
  boolean lock = true;
  FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock);
  byte[] b1 = new byte[BUFFER_SIZE];
  int readBytes1;
  storage.init(fileName, mime); // Calling my Java Class Here
  while ((readBytes1 = is1.read(b1)) != -1) {
  writeChannel.write(ByteBuffer.wrap(b1, 0, readBytes1));
  storage.storeFile(b1, readBytes1);}
  writeChannel.closeFinally();

ここの下にあるGoogleクラウドにデータを保存するためのストレージJavaクラスがあります。

//My Storage Class 
  public class StorageService {
  public static final String BUCKET_NAME = "MyBucket";  
  public void init(String fileName, String mime) throws Exception {
  GSFileOptionsBuilder builder = new GSFileOptionsBuilder().setAcl("public_read").setBucket(BUCKET_NAME).setKey(fileName).setMimeType(mime); 
  AppEngineFile writableFile = fileService.createNewGSFile(builder.build());
boolean lock = true;
writeChannel = fileService.openWriteChannel(writableFile, lock);
bos = new BufferedOutputStream(Channels.newOutputStream(writeChannel));
public void storeFile(byte[] b, int readSize) throws Exception { 
 bos.write(b,0,readSize);
bos.flush();
}}

上記の参照から、ファイルを Google クラウドに直接保存できます。しかし、ファイル サービスを使用して、これらのファイルを BLOB 値として保存する必要があります。

誰でも私にアイデアを提案できますか。

あなたの助けに感謝します。

4

1 に答える 1

0

appengine サービス アカウントを Google API コンソール プロジェクトに追加しましたか? まだ行っていない場合は、Google API コンソール プロジェクトを準備する必要があります。

  1. GAE 管理コンソールの「アプリケーション設定」タブで appengine サービス アカウントを確認します。
  2. Google API Consoleで新しいプロジェクトを作成します。または既存のバケットの API コンソール プロジェクトを開きます。
  3. 「サービス」タブで「Google Cloud Storage」を有効にします。
  4. API コンソールの [チーム] タブで appengine サービス アカウントをチームとして追加します。
于 2013-01-25T15:14:24.803 に答える