我有一堆关于GCP存储桶的视频,我需要使用ffmpeg进行连接,然后将结果保存到另一个存储桶中。
我对GCP非常陌生,所以我通常做的是旋转一个VM,让它(通过脚本)使用gsutil下载视频,然后处理它们,然后再用gsutil上传结果,但据我所知,这在网络流量、处理成本和可伸缩性方面都是非常低效的。
因此,以非常一般的方式运行,这将是运行这样一个脚本的最好的GCP内置特性:应用程序引擎、云函数或云运行,它需要什么?
发布于 2021-01-08 14:18:52
我想说,对您的问题没有错误的答案,因为App、Cloud和Cloud都可以实现您想要实现的目标,并且与此相关的成本也是相同的。
当你作出决定时,你应该考虑:
就我个人而言,我将与App一起处理您描述的问题。
注意到:我知道这个答案非常通用,但它确实取决于您的用例的特性以及您希望您的解决方案看起来像什么。
发布于 2020-12-30 11:45:24
您可以通过创建应用程序并使用Google库将结果上传到桶中,从而实现过程的自动化。下面是python中的一个上传示例:
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文档,在那里您可以找到可能对您有帮助的示例代码。
https://stackoverflow.com/questions/65504925
复制相似问题