【问题标题】:Uploading local file to Google Cloud storage gives error将本地文件上传到 Google Cloud 存储会出错
【发布时间】:2016-12-07 15:34:27
【问题描述】:

我正在尝试将文件上传到 Google 云存储,但它抛出异常。

这是我的代码:-

public class MainClass {
    public static void main(String[] args) {
        sendFileToGcs();
    }

    private static void sendFileToGcs()
    {
           GcsService gcsService = GcsServiceFactory.createGcsService(new RetryParams.Builder()
          .initialRetryDelayMillis(10)
          .retryMaxAttempts(10)
          .totalRetryPeriodMillis(15000)
          .build());
          try{
              GcsFileOptions instance = GcsFileOptions.getDefaultInstance();
              GcsFilename fileName = new GcsFilename("my-bucket", "myFile");
              GcsOutputChannel outputChannel;
              outputChannel = gcsService.createOrReplace(fileName, instance);
              File file = new File("audio.mp3");

              FileInputStream fis = new FileInputStream(file);
              InputStream is = fis;

              copy(is, Channels.newOutputStream(outputChannel));
              fis.close();
          }catch(IOException e){}
          while(true){}

    }

    private static void copy(InputStream input, OutputStream output) throws IOException {
         final int BUFFER_SIZE = 2 * 1024 * 1024;
            try {
              byte[] buffer = new byte[BUFFER_SIZE];
              int bytesRead = input.read(buffer);
              while (bytesRead != -1) {
                output.write(buffer, 0, bytesRead);
                bytesRead = input.read(buffer);
              }
            } finally {
              input.close();
              output.close();
            }
          }

}

异常详情:-

> Aug 02, 2016 3:41:01 PM
> com.google.appengine.tools.cloudstorage.RetryHelper doRetry INFO:
> RetryHelper(14.86 ms, 1 attempts,
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1de0aca6):
> Attempt #1 failed [java.io.IOException:
> java.lang.NullPointerException], sleeping for 12 ms Aug 02, 2016
> 3:41:01 PM com.google.appengine.tools.cloudstorage.RetryHelper doRetry
> INFO: RetryHelper(59.97 ms, 2 attempts,
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1de0aca6):
> Attempt #2 failed [java.io.IOException:
> java.lang.NullPointerException], sleeping for 16 ms Aug 02, 2016
> 3:41:01 PM com.google.appengine.tools.cloudstorage.RetryHelper doRetry
> INFO: RetryHelper(77.05 ms, 3 attempts,
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1de0aca6):
> Attempt #3 failed [java.io.IOException:
> java.lang.NullPointerException], sleeping for 32 ms Aug 02, 2016
> 3:41:01 PM com.google.appengine.tools.cloudstorage.RetryHelper doRetry
> INFO: RetryHelper(110.4 ms, 4 attempts,
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1de0aca6):
> Attempt #4 failed [java.io.IOException:
> java.lang.NullPointerException], sleeping for 82 ms Aug 02, 2016
> 3:41:01 PM com.google.appengine.tools.cloudstorage.RetryHelper doRetry
> INFO: RetryHelper(193.5 ms, 5 attempts,
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1de0aca6):
> Attempt #5 failed [java.io.IOException:
> java.lang.NullPointerException], sleeping for 159 ms Aug 02, 2016
> 3:41:01 PM com.google.appengine.tools.cloudstorage.RetryHelper doRetry
> INFO: RetryHelper(353.7 ms, 6 attempts,
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1de0aca6):
> Attempt #6 failed [java.io.IOException:
> java.lang.NullPointerException], sleeping for 394 ms Aug 02, 2016
> 3:41:01 PM com.google.appengine.tools.cloudstorage.RetryHelper doRetry
> INFO: RetryHelper(750.2 ms, 7 attempts,
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1de0aca6):
> Attempt #7 failed [java.io.IOException:
> java.lang.NullPointerException], sleeping for 640 ms Aug 02, 2016
> 3:41:02 PM com.google.appengine.tools.cloudstorage.RetryHelper doRetry
> INFO: RetryHelper(1.393 s, 8 attempts,
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1de0aca6):
> Attempt #8 failed [java.io.IOException:
> java.lang.NullPointerException], sleeping for 1547 ms Aug 02, 2016
> 3:41:04 PM com.google.appengine.tools.cloudstorage.RetryHelper doRetry
> INFO: RetryHelper(2.941 s, 9 attempts,
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1de0aca6):
> Attempt #9 failed [java.io.IOException:
> java.lang.NullPointerException], sleeping for 2694 ms Exception in
> thread "main"
> com.google.appengine.tools.cloudstorage.RetriesExhaustedException:
> RetryHelper(5.637 s, 10 attempts,
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1@1de0aca6):
> Too many failures, giving up  at
> com.google.appengine.tools.cloudstorage.RetryHelper.doRetry(RetryHelper.java:127)
>   at
> com.google.appengine.tools.cloudstorage.RetryHelper.runWithRetries(RetryHelper.java:166)
>   at
> com.google.appengine.tools.cloudstorage.RetryHelper.runWithRetries(RetryHelper.java:156)
>   at
> com.google.appengine.tools.cloudstorage.GcsServiceImpl.createOrReplace(GcsServiceImpl.java:70)
>   at MainClass.sendApkToFirebase(MainClass.java:33)   at
> MainClass.main(MainClass.java:19) Caused by: java.io.IOException:
> java.lang.NullPointerException    at
> com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService$BlobStorageAdapter.getInstance(LocalRawGcsService.java:186)
>   at
> com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService$BlobStorageAdapter.access$000(LocalRawGcsService.java:109)
>   at
> com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService.ensureInitialized(LocalRawGcsService.java:194)
>   at
> com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService.beginObjectCreation(LocalRawGcsService.java:249)
>   at
> com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService.beginObjectCreation(LocalRawGcsService.java:92)
>   at
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1.call(GcsServiceImpl.java:74)
>   at
> com.google.appengine.tools.cloudstorage.GcsServiceImpl$1.call(GcsServiceImpl.java:70)
>   at
> com.google.appengine.tools.cloudstorage.RetryHelper.doRetry(RetryHelper.java:108)
>   ... 5 more Caused by: java.lang.NullPointerException    at
> com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService$BlobStorageAdapter.<init>(LocalRawGcsService.java:123)
>   at
> com.google.appengine.tools.cloudstorage.dev.LocalRawGcsService$BlobStorageAdapter.getInstance(LocalRawGcsService.java:184)
>   ... 12 more

【问题讨论】:

  • 我现在有完全相同的错误。如果我找到解决方案,我会通知您。
  • 那很好。

标签: java google-app-engine google-cloud-storage


【解决方案1】:

您是否在 App Engine 中运行该代码?根据https://groups.google.com/d/msg/google-appengine-stackoverflow/mVl-gpyIZdY/QZPvGkWeHgAJ,该库旨在在那里(或与应用开发中心一起使用)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2021-06-16
    • 2021-09-07
    • 2019-10-29
    • 1970-01-01
    • 2016-02-03
    • 2021-01-05
    相关资源
    最近更新 更多