2016-12-21 11 views
0

firebaseアカウントを持っており、プログラムによってfirebaseストレージにいくつかの写真をアップロードしたいと思います。これを行うには、Google Cloud JavaストレージAPIを使用しています。私は許可などを設定します。私はうまくバケツ、ブロブを作成することができます。しかし、画像をアップロードしようとすると、サイズが0か、ダウンロードできない(URLは生成されません)。私が使用するコードは以下の通りです。firebase storage Google googleクラウドストレージからのアップロードjava api

 Storage storage = StorageOptions.newBuilder().setProjectId("firebaseId") 
       .setCredentials(ServiceAccountCredentials.fromStream(new FileInputStream("jsonFileFor Authentication"))) 
       .build() 
       .getService(); 
     String blobName = "a.jpg"; 
     BlobId blobId = BlobId.of(bucket.getName(), blobName); 
     InputStream inputStream = new FileInputStream(new File("a.jpg")); 
     //BlobInfo blobInfo = BlobInfo.builder(blobId).contentType("image/jpeg").build(); 
     BlobInfo blobInfo = BlobInfo.builder(bucket.getName(), "a.jpg").contentType("image/jpeg").build(); 

    try (WriteChannel writer = storage.writer(blobInfo)) { 
     byte[] buffer = new byte[1024]; 
     int limit; 
     try { 
      while ((limit = inputStream.read(buffer)) >= 0) { 
       writer.write(ByteBuffer.wrap(buffer, 0, limit)); 
      } 

     } catch (Exception ex) { 
      // handle exception 
     }finally { 
      writer.close(); 
     } 
    } 

アドバイスをいただければ幸いです。よろしくです。 よろしくお願いします。

答えて

3

コードは機能しています。問題は許可に関連しています。 firebaseストレージバケットの所有者としてGoogleストレージのオーナーIDを設定する必要があります。その後、firebaseストレージバケットに書き込むことができます。私は、誰かがGoogleストレージJava APIからfirebaseストレージを書き込むために検索する場合の投稿を削除しません。

よろしくお願いいたします。

関連する問題