0

我正在使用 CloudBerry Explorer 将文件从一个存储桶复制到另一个存储桶。两个存储桶都在 Google Cloud Platform 上的同一个项目下。我可以轻松地复制小文件,但是当尝试将 1GB 以上的文件从同一路径复制到另一个时,我得到一个错误:

“远程服务器返回错误:(500) 内部服务器错误。

权限是正确的,因为移动小文件很好。

可能是什么问题?

云莓日志:

2020-12-09 14:23:52,298 [Google] [9] INFO  - InternalGetObjectExists start, bucket: DEDUCTED-BUCKET, key DEDUCTED-FILENAME.mp4
2020-12-09 14:23:52,781 [Google] [9] INFO  - InternalGetObjectExists ready, bucket: DEDUCTED-BUCKET, key DEDUCTED-FILENAME.mp4, status: 404
2020-12-09 14:23:52,782 [Google] [9] INFO  - InternalGetObjectExists start, bucket: DEDUCTED-BUCKET, key DEDUCTED-PATH/DEDUCTED-FILENAME.mp4
2020-12-09 14:23:52,992 [Google] [9] INFO  - InternalGetObjectExists ready, bucket: DEDUCTED-BUCKET, key DEDUCTED-PATH/DEDUCTED-FILENAME.mp4, status: 200
2020-12-09 14:23:52,992 [Google] [9] INFO  - InternalCopyObjectNonChunked start, src bucket: DEDUCTED-BUCKET, src key: DEDUCTED-PATH/DEDUCTED-FILENAME.mp4, dst bucket: DEDUCTED-BUCKET, dst key: DEDUCTED-FILENAME.mp4
2020-12-09 14:25:17,510 [Google] [9] INFO  - InternalCopyObjectNonChunked ready, src bucket: DEDUCTED-BUCKET, src key: DEDUCTED-PATH/DEDUCTED-FILENAME.mp4, dst bucket: DEDUCTED-BUCKET, dst key: DEDUCTED-FILENAME.mp4, status: 500
2020-12-09 14:25:17,510 [Google] [9] ERROR - Http response status: 500: Internal Server Error
2020-12-09 14:25:17,511 [Google] [9] ERROR - <?xml version='1.0' encoding='UTF-8'?><Error><Code>InternalError</Code><Message>We encountered an internal error. Please try again.</Message><Details>AFfi+BFP7TevpPSJUbrZ2g1VXu3cm/uZHLEPxDMKeQro1D9stEU/xcIHUePCm9meA3u2N+gGUX41/UHUd1WIDNA+tOjFrbNRZsC2T8twlFOBURzaHcO5GfU=</Details></Error>
2020-12-09 14:25:17,511 [Google] [9] ERROR - InternalCopyObjectNonChunked failed. src bucket: DEDUCTED-BUCKET, src key: DEDUCTED-PATH/DEDUCTED-FILENAME.mp4, dst bucket: DEDUCTED-BUCKET, dst key: DEDUCTED-FILENAME.mp4
CloudBerryLab.Base.Exceptions.Status500Exception
The remote server returned an error: (500) Internal Server Error.

System.Net.WebException
The remote server returned an error: (500) Internal Server Error.
   at System.Net.HttpWebRequest.GetResponse()
   at gZ.A(HB , Action1` , HttpWebRequest , HS )

2020-12-09 14:25:17,513 [CL] [9] ERROR - Command::Run failed:
Copy; Source:DEDUCTED-PATH/DEDUCTED-FILENAME.mp4; Destination:/DEDUCTED-BUCKET/
CloudBerryLab.Base.Exceptions.Status500Exception: The remote server returned an error: (500) Internal Server Error. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
   at System.Net.HttpWebRequest.GetResponse()
   at gZ.A(HB , Action1` , HttpWebRequest , HS )
   --- End of inner exception stack trace ---
   at Tm.a(String , String , String , String , String , MetadataDirective , Gw , Jt )
   at Tm.A(String , String , String , String , String , String , Gw )
   at sU.A(Tm , sU , Gw , lD )
   at sU.BV(lL , String , lD )
   at lF.RunInternal()
   at SE.RunInternal()
   at lE.fa()
4

1 回答 1

0

我最近遇到了同样的问题。最初,使用 tGCSCopy 组件的 Talend 作业报告了该问题,该作业失败并出现 500 错误。Cloudberry 也有手动测试的经验。适用于小文件,但较大的文件是问题发生的地方。原来这个问题与桶到桶的副本有关,其中目标桶使用客户管理的加密密钥进行加密。标准的 Google 托管加密没有相同的问题,并且使用 Google 提供的实用程序(如 gsutil)不会表现出相同的行为。

我还使用使用相同密钥加密的源对象对此进行了测试,但没有任何区别。Talend 使用 jets3t,一个符合 s3 标准的库来与 Cloud Storage 进行交互,我假设 Cloudberry 正在做类似的事情,但在这种情况下并不适合。

目前还没有解决方案,谷歌可能会说不要使用 3rd 方产品。

于 2021-04-02T00:57:26.630 回答