コード例 #1
0
        public async Task <Uri> RenameAsync(RawLogFileInfo rawLogFile, string newFileName)
        {
            if (rawLogFile == null)
            {
                throw new ArgumentNullException(nameof(rawLogFile));
            }

            if (string.IsNullOrWhiteSpace(newFileName))
            {
                throw new ArgumentNullException(nameof(newFileName));
            }

            Uri rawLogUri;

            if (!rawLogFile.IsPendingDownload)
            {
                if (await RenameAsync(rawLogFile.Uri, newFileName))
                {
                    rawLogUri = new Uri(rawLogFile.Uri + FileExtensions.Download);
                }
                else
                {
                    rawLogUri = null;
                }
            }
            else
            {
                rawLogUri = rawLogFile.Uri;
            }

            return(rawLogUri);
        }
コード例 #2
0
        public void CorrectlyParsesValidCdnRawLogFileName()
        {
            var uri        = new Uri("ftp://someserver/logs/wpc_A000_20150603_0058.log.gz");
            var rawLogFile = new RawLogFileInfo(uri);

            Assert.False(rawLogFile.IsPendingDownload);
            Assert.Equal(uri, rawLogFile.Uri);
            Assert.Equal("wpc_A000_20150603_0058.log.gz", rawLogFile.FileName);
            Assert.Equal("A000", rawLogFile.AzureCdnAccountNumber);
            Assert.Equal(AzureCdnPlatform.HttpLargeObject, rawLogFile.AzureCdnPlatform);
            Assert.Equal(FileExtensions.RawLog + FileExtensions.Gzip, rawLogFile.Extension);
            Assert.Equal("application/x-gzip", rawLogFile.ContentType);
            Assert.Equal(DateTime.ParseExact("20150603", "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal), rawLogFile.GeneratedDate);
            Assert.Equal(58, rawLogFile.RollingFileNumber);
            Assert.Equal("wpc_A000_20150603_0058.log.gz", rawLogFile.ToString());
        }
コード例 #3
0
        public async Task<bool> CheckIfBlobExistsAsync(CloudBlobContainer targetContainer, RawLogFileInfo logFile)
        {
            try
            {
                Trace.TraceInformation("Checking if file '{0}' exists.", logFile.FileName);

                var blob = targetContainer.GetBlockBlobReference(logFile.FileName);
                bool exists = await blob.ExistsAsync();

                Trace.TraceInformation("Finished checking if file '{0}' exists (exists = {1}.", logFile.FileName, exists);
                return exists;
            }
            catch (Exception exception)
            {
                Trace.TraceError(exception.ToString());
            }
            return false;
        }
コード例 #4
0
        public async Task<CloudBlobStream> OpenBlobForWriteAsync(CloudBlobContainer targetContainer, RawLogFileInfo logFile, string fileName)
        {
            if (targetContainer == null)
            {
                throw new ArgumentNullException("targetContainer");
            }
            if (logFile == null)
            {
                throw new ArgumentNullException("logFile");
            }

            var blobName = logFile.Uri.ToString();

            _jobEventSource.BeginningBlobUpload(blobName);

            var blob = targetContainer.GetBlockBlobReference(fileName);
            blob.Properties.ContentType = logFile.ContentType;

            // return a writeable stream
            return await blob.OpenWriteAsync();
        }
コード例 #5
0
ファイル: FtpRawLogClient.cs プロジェクト: joyhui/NuGet.Jobs
        public async Task<Uri> RenameAsync(RawLogFileInfo rawLogFile, string newFileName)
        {
            if (rawLogFile == null)
            {
                throw new ArgumentNullException("rawLogFile");
            }
            if (string.IsNullOrWhiteSpace(newFileName))
            {
                throw new ArgumentNullException("newFileName");
            }

            Uri rawLogUri;
            if (!rawLogFile.IsPendingDownload)
            {
                if (await RenameAsync(rawLogFile.Uri, newFileName))
                {
                    rawLogUri = new Uri(rawLogFile.Uri + FileExtensions.Download);
                }
                else
                {
                    rawLogUri = null;
                }
            }
            else
            {
                rawLogUri = rawLogFile.Uri;
            }
            return rawLogUri;
        }
コード例 #6
0
        public async Task <bool> CheckIfBlobExistsAsync(CloudBlobContainer targetContainer, RawLogFileInfo logFile)
        {
            try
            {
                Trace.TraceInformation("Checking if file '{0}' exists.", logFile.FileName);

                var  blob   = targetContainer.GetBlockBlobReference(logFile.FileName);
                bool exists = await blob.ExistsAsync();

                Trace.TraceInformation("Finished checking if file '{0}' exists (exists = {1}.", logFile.FileName, exists);
                return(exists);
            }
            catch (Exception exception)
            {
                Trace.TraceError(exception.ToString());
            }
            return(false);
        }
コード例 #7
0
        public async Task <CloudBlobStream> OpenBlobForWriteAsync(CloudBlobContainer targetContainer, RawLogFileInfo logFile, string fileName)
        {
            if (targetContainer == null)
            {
                throw new ArgumentNullException("targetContainer");
            }
            if (logFile == null)
            {
                throw new ArgumentNullException("logFile");
            }

            var blobName = logFile.Uri.ToString();

            _jobEventSource.BeginningBlobUpload(blobName);

            var blob = targetContainer.GetBlockBlobReference(fileName);

            blob.Properties.ContentType = logFile.ContentType;

            // return a writeable stream
            return(await blob.OpenWriteAsync());
        }
コード例 #8
0
        public async Task <CloudBlobStream> OpenBlobForWriteAsync(CloudBlobContainer targetContainer, RawLogFileInfo logFile, string fileName)
        {
            if (targetContainer == null)
            {
                throw new ArgumentNullException(nameof(targetContainer));
            }
            if (logFile == null)
            {
                throw new ArgumentNullException(nameof(logFile));
            }

            var blobName = logFile.Uri.ToString();

            _logger.LogInformation("Beginning blob upload: '{BlobUri}'", blobName);

            var blob = targetContainer.GetBlockBlobReference(fileName);

            blob.Properties.ContentType = logFile.ContentType;

            // return a writeable stream
            return(await blob.OpenWriteAsync());
        }