首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >位于Google云存储桶上的批处理对象的最佳方法

位于Google云存储桶上的批处理对象的最佳方法
EN

Stack Overflow用户
提问于 2020-12-30 09:46:02
回答 2查看 464关注 0票数 2

我有一堆关于GCP存储桶的视频,我需要使用ffmpeg进行连接,然后将结果保存到另一个存储桶中。

我对GCP非常陌生,所以我通常做的是旋转一个VM,让它(通过脚本)使用gsutil下载视频,然后处理它们,然后再用gsutil上传结果,但据我所知,这在网络流量、处理成本和可伸缩性方面都是非常低效的。

因此,以非常一般的方式运行,这将是运行这样一个脚本的最好的GCP内置特性:应用程序引擎、云函数或云运行,它需要什么?

EN

回答 2

Stack Overflow用户

发布于 2021-01-08 14:18:52

我想说,对您的问题没有错误的答案,因为App、Cloud和Cloud都可以实现您想要实现的目标,并且与此相关的成本也是相同的。

当你作出决定时,你应该考虑:

  • 你最熟悉什么工具;
  • Google在为我的应用程序选择无服务器产品时,你可以在他们的文档上找到一篇很好的文章;
  • 你想要如何扩大这个规模。

就我个人而言,我将与App一起处理您描述的问题。

注意到:我知道这个答案非常通用,但它确实取决于您的用例的特性以及您希望您的解决方案看起来像什么。

票数 1
EN

Stack Overflow用户

发布于 2020-12-30 11:45:24

您可以通过创建应用程序并使用Google库将结果上传到桶中,从而实现过程的自动化。下面是python中的一个上传示例:

代码语言:javascript
复制
namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string const& file_name,
   std::string const& bucket_name, std::string const& object_name) {
  // Note that the client library automatically computes a hash on the
  // client-side to verify data integrity during transmission.
  StatusOr<gcs::ObjectMetadata> metadata = client.UploadFile(
      file_name, bucket_name, object_name, gcs::IfGenerationMatch(0));
  if (!metadata) throw std::runtime_error(metadata.status().message());

  std::cout << "Uploaded " << file_name << " to object " << metadata->name()
            << " in bucket " << metadata->bucket()
            << "\nFull metadata: " << *metadata << "\n";
}

我可以看到这个ffmpeg也适用于python。,所以我相信将所有这些都包含到一个程序中将使它变得更容易。在存储桶中上载/下载对象的其他可能性是云控制台和REST。

要获得更多信息,您还可以查看Google文档,在那里您可以找到可能对您有帮助的示例代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65504925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档