0

400MBのファイルサイズをGoogle Cloud Storageにアップロードします。ファイルサイズが大きいときに、私はアップロードURLを取得するために使用していますコードスニペットを以下に示しますとangularjsより大きいサイズのファイルがアップロードされたときのGCS - ヒープエラー

Java Servlet: 

UploadOptions opts = UploadOptions.Builder 
     .withGoogleStorageBucketName(GCS_BUCKET_NAME); 
String url = blobstore.createUploadUrl("/upload", opts); 

AngularJS: 

$scope.formData.append('file', $scope.filename); 

$http.post(uploadUrl, $scope.formData, { 
    withCredentials: true, 
    headers: { 
     'Content-Type': undefined 
    }, 
    transformRequest: angular.identity 
}) 

コードに転記するためのファイルサイズまで正常に動作していることは、周りの100〜150メガバイトである私は、次のようになりましたブラウザコンソールでエラーが発生しました。

Failed to load resource: the server responded with a status of 500 (Java heap space)

私はこのエラーを回避するために必要か?

+0

このエラーは、開発サーバーまたは本番環境で発生していますか? –

+0

こんにちは@EricSimontonあなたは正しいです!この問題は、本番環境ではない開発サーバーでのみ発生します。 – SetV

答えて

1

上記の私の質問へのあなたの応答で言ったように、これは開発中ではなく、生産中で起こっています。私の推測では、Googleのblobstoreコードは要求全体を開発サーバーのメモリに読み込むが、そのコードにアクセスできないため、言うことは難しい。 devで大きなアップロードをテストする必要がある場合は、より多くのメモリを使用して起動するようにdevサーバを設定してみてください。私は-Xmx512M(eclipseの起動設定の "VM引数"セクションにある)のように見えますが、さらに試してみることもできます。開発者にとって重要でない場合は、小さなアップロードをテストして、大規模なものが本番環境で動作することを信頼することができます。 :)

私は、EclipseとMavenを併用することで、Mavenが自動的に生成した起動構成のコピーを作成し、それ以外の場合はMavenを修正しなければならなかった私の変更を上書きします。つまり、Appengine SDKを更新するとき(新しいバージョン番号を反映するため)など、手作業でコピーを更新する必要があるということも意味します。

関連する問題