Назад | Перейти на главную страницу

GCS GoogleCredential

Мое приложение требует загрузки файла из корзины GCS. Я могу загружать файлы из GCS, используя метод StorageClient DownloadObjects. Но выступление действительно медленное. для файла размером 50 МБ это занимает 3-4 минуты, и это время зависит от большой разницы во времени. Найдите образец кода и дайте мне знать, как я могу улучшить скорость загрузки?

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, objectName, fs, option, progress);

        }
 }

Проблема с задержкой может исходить от приложения, сети (вашей или Google) или службы облачного хранилища. Чтобы определить основную причину, выполните следующие действия:

  1. Бегать mtr к конечной точке облачного хранилища 2 раза, чтобы определить, наблюдается ли задержка в сети и где именно. Пример команды: mtr -4 -n -r -c 10 www.googleapis.com
  2. Загрузите файл напрямую с помощью gsutil чтобы определить, связана ли проблема со стороны приложения.
  3. Выполните диагностику производительности с помощью Команда gsutil "perfdiag" чтобы определить любую проблему на стороне Cloud Storage. Пример команды: gsutil perfdiag -o output.json gs://your-bucket

Если результаты показывают хорошие показатели, то стоит попробовать скачать файл асинхронно. Наконец, вот несколько советы по оптимизации производительности облачного хранилища.