示例#1
0
        /// <summary>
        /// Main entry point for the lambda
        /// </summary>
        /// <param name="context"></param>
        public async Task Handle(ILambdaContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var apiKey        = _configurationService.FlickrApiKey;
            var apiSecret     = _configurationService.FlickrApiSecret;
            var userId        = _configurationService.FlickrUserId;
            var bucketName    = _configurationService.S3Bucket;
            var s3Region      = _configurationService.AwsRegion;
            var resizeToWidth = _configurationService.ResizeToWidth;

            // download file from flickr
            var url = await _flickrService.GetLastUploadedPhotoUrl(apiKey, apiSecret, userId, PhotoSize.Small);

            if (!string.IsNullOrWhiteSpace(url))
            {
                var downloadedFile = _downloadService.DownloadFile(url);
                var resizedFile    = _imageService.ResizeImage(downloadedFile, resizeToWidth);

                var key = _configurationService.S3UploadKey;
                await _s3FileService.UploadFile(resizedFile, bucketName, key, s3Region);
            }
        }