public override VirtualDirectory GetDirectory(string virtualDir)
        {
            if (virtualDir.StartsWith(VirtualPathRoot))
            {
                var directory = new AmazonS3Directory(this, virtualDir);
                return directory;
            }

            return Previous.GetDirectory(virtualDir);
        }
        public override VirtualFile GetFile(string virtualPath)
        {
            if (virtualPath.StartsWith(this.VirtualPathRoot))
            {
                var amazonFile = new AmazonS3Repository(this.AwsAccessKey, this.AwsSecretKey, this.BucketName).GetFile(EPiServer.Url.Decode(virtualPath).Replace(VirtualPathRoot, string.Empty));
                var parent = new AmazonS3Directory(this, VirtualPathUtility.GetDirectory(virtualPath));

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

                return new AmazonS3File(parent, this, virtualPath, true, amazonFile);
            }

            if (string.IsNullOrEmpty(virtualPath))
            {
                return null;
            }

            return this.Previous.GetFile(virtualPath);
        }