コード例 #1
0
ファイル: MongoDBCache.cs プロジェクト: usercode/ImageWizard
        public async Task WriteAsync(string key, ICachedImage cachedImage)
        {
            ImageMetadataModel model = new ImageMetadataModel()
            {
                Created      = cachedImage.Metadata.Created,
                Cache        = cachedImage.Metadata.Cache,
                Hash         = cachedImage.Metadata.Hash,
                Key          = cachedImage.Metadata.Key,
                LoaderSource = cachedImage.Metadata.LoaderSource,
                Filters      = cachedImage.Metadata.Filters,
                LoaderType   = cachedImage.Metadata.LoaderType,
                MimeType     = cachedImage.Metadata.MimeType,
                Width        = cachedImage.Metadata.Width,
                Height       = cachedImage.Metadata.Height,
                DPR          = cachedImage.Metadata.DPR,
                FileLength   = cachedImage.Metadata.FileLength
            };

            //upload image metadata
            await ImageMetadatas.ReplaceOneAsync(Builders <ImageMetadataModel> .Filter.Where(x => x.Key == key), model, new ReplaceOptions()
            {
                IsUpsert = true
            });

            using (Stream cachedImageStream = await cachedImage.OpenReadAsync())
            {
                //upload transformed image
                await ImageBuffer.UploadFromStreamAsync(key, cachedImageStream);
            }
        }
コード例 #2
0
ファイル: MongoDBCache.cs プロジェクト: usercode/ImageWizard
        public async Task <ICachedImage> ReadAsync(string key)
        {
            ImageMetadataModel foundMetadata = await ImageMetadatas
                                               .AsQueryable()
                                               .FirstOrDefaultAsync(x => x.Key == key);

            if (foundMetadata == null)
            {
                return(null);
            }

            CachedImage cachedImage = new CachedImage(foundMetadata, async() => await ImageBuffer.OpenDownloadStreamByNameAsync(key));

            return(cachedImage);
        }