使用C#

我们正在尝试从GCP存储桶控制台下载文件,但是性能确实很慢。即使是一个50 MB的文件,也要花费大约2到3分钟的时间,而且变化范围也很大。我们正在使用storageclient downloadobjects方法

我们有一个适用于GCP上传的代码,该代码可以更快地上传GB的文件。在下载方面是否存在特定问题。

我们正在使用C#代码进行上传和下载。

class Program
{
    public static void Main(string[] args)
    {
        GoogleCredentials gcpCreds = new GoogleCredentials()
        {
            private_key = "-----BEGIN PRIVATE KEY-----PrivateKey-----END PRIVATE KEY-----\n",client_email = "client_email",type = "service_account"
        };

        var credentials = GoogleCredential.FromJson(JsonConvert.SerializeObject(gcpCreds));

        // var credentials= GoogleCredential.GetapplicationDefault();
        var storage = Storageclient.CreateAsync(credentials).Result;
        string localPath,directoryPath,localFileName,objectname,bucketName;
        directoryPath = "localpathstring";
        objectname = "SourceFileName";
        localFileName = objectname;
        localPath = directoryPath + "\\" + localFileName;
       bucketName="bucketName";

       FileStream fs = new FileStream(localPath,FileMode.OpenOrCreate);

        //Code to download with progress bar
        DownloadObjectOptions option = new DownloadObjectOptions();
        using (fs)
        {
            var progress = new Progress<IDownloadProgress>(
                 p => Console.WriteLine($"bytes: {p.BytesDownloaded},status: {p.Status},"));
            storage.DownloadObject(bucketName,fs,option,progress);
            }
     }
maoyink 回答:使用C#

对我来说,下载速度的结果似乎并不奇怪。云存储具有一种运行机制,可以使较大的文件比较小的文件更快地下载。例如,如果您尝试下载10 GB的文件,则会看到性能会大大提高。

对于这个50MB的下载用例,我认为没有很多改进,但是总体上,提高下载整体速度的一种好方法是在请求数量和大小之间找到平衡点其中。您可以找到有关改善GCS性能的不错的文章here

此外,随着experiments的制作,使用gsutil tool而不是简单的HTTP请求可以实现更好的性能。

本文链接:https://www.f2er.com/3123928.html

大家都在问