예제 #1
0
        public async Task StoreMZipAsync(string id, string version, CancellationToken token)
        {
            var baseUrl = await _serviceIndexCache.GetUrlAsync(ServiceIndexTypes.FlatContainer);

            var url = _flatContainerClient.GetPackageContentUrl(baseUrl, id, version);

            using (var reader = await _httpZipProvider.GetReaderAsync(new Uri(url)))
            {
                await _fileStorageService.StoreStreamAsync(
                    id,
                    version,
                    FileArtifactType.MZip,
                    destStream => _mZipFormat.WriteAsync(reader.Stream, destStream));
            }
        }
예제 #2
0
        private async Task <TMetadata> FetchMetadataAsync(
            HttpClient httpClient, string nupkgUri, NuspecReader nuspecReader, string id, string version, Logger logger)
        {
            var httpZipProvider = new HttpZipProvider(httpClient);

            var zipDirectoryReader = await httpZipProvider.GetReaderAsync(new Uri(nupkgUri));

            var zipDirectory = await zipDirectoryReader.ReadAsync();

            var files = zipDirectory
                        .Entries
                        .Select(x => x.GetName())
                        .ToList();

            return(ReadMetadata(files, nuspecReader));
        }