Пример #1
0
 public async Task <Stream> DownloadPackageOrNullAsync(
     string id,
     NuGetVersion version,
     CancellationToken cancellationToken)
 {
     try
     {
         using (var downloadStream = await _client.DownloadPackageAsync(id, version, cancellationToken))
         {
             return(await downloadStream.AsTemporaryFileStreamAsync(cancellationToken));
         }
     }
     catch (PackageNotFoundException)
     {
         return(null);
     }
     catch (Exception e)
     {
         _logger.LogError(
             e,
             "Failed to download {PackageId} {PackageVersion} from upstream",
             id,
             version);
         return(null);
     }
 }
Пример #2
0
        private async Task IndexFromSourceAsync(string id, NuGetVersion version, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            _logger.LogInformation(
                "Attempting to mirror package {PackageId} {PackageVersion}...",
                id,
                version);

            Stream packageStream = null;

            try
            {
                using (var stream = await _upstreamClient.DownloadPackageAsync(id, version, cancellationToken))
                {
                    packageStream = await stream.AsTemporaryFileStreamAsync();
                }

                _logger.LogInformation(
                    "Downloaded package {PackageId} {PackageVersion}, indexing...",
                    id,
                    version);

                var result = await _indexer.IndexAsync(packageStream, cancellationToken);

                _logger.LogInformation(
                    "Finished indexing package {PackageId} {PackageVersion} with result {Result}",
                    id,
                    version,
                    result);
            }
            catch (PackageNotFoundException)
            {
                _logger.LogWarning(
                    "Failed to download package {PackageId} {PackageVersion}",
                    id,
                    version);

                return;
            }
            catch (Exception e)
            {
                _logger.LogError(
                    e,
                    "Failed to mirror package {PackageId} {PackageVersion}",
                    id,
                    version);
            }
            finally
            {
                packageStream?.Dispose();
            }
        }
Пример #3
0
 public async Task <Stream> DownloadPackageAsync(string id, NuGetVersion version,
                                                 CancellationToken cancellationToken)
 {
     return(await _client.DownloadPackageAsync(id, version, cancellationToken));
 }