예제 #1
0
        public S3V4FileSystemStream(FileSystemFile file, Action <FileSystemStream> disposeAction, int timeoutMs) : base(file, disposeAction)
        {
            m_Handle = (S3V4FileSystem.S3V4FSH)file.Handle;

            m_timeoutMs = timeoutMs;

            m_Session = file.Session as S3V4FileSystemSession;

            m_IsNewFile = !S3V4.FileExists(m_Handle.Path, m_Session.AccessKey, m_Session.SecretKey, m_Session.Bucket, m_Session.Region,
                                           timeoutMs);
        }
예제 #2
0
        protected internal override FileSystemSessionItem DoNavigate(FileSystemSession session, string path)
        {
            var s3session = (S3V4FileSystemSession)session;

            S3V4FSH handle = new S3V4FSH(path);

            if (path != "" && S3V4.FileExists(path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs))
            {
                return(new FileSystemFile(s3session, handle.Parent, handle.Name, handle));
            }

            if (S3V4.FolderExists(path, s3session.AccessKey, s3session.SecretKey, s3session.Bucket, s3session.Region, s3session.TimeoutMs))
            {
                return(new FileSystemDirectory(s3session, handle.Parent, handle.Name, handle));
            }

            return(null);
        }