コード例 #1
0
        /// <exception cref="System.IO.IOException"/>
        public override FSDataOutputStream CreateInternal(Path f, EnumSet <CreateFlag> createFlag
                                                          , FsPermission absolutePermission, int bufferSize, short replication, long blockSize
                                                          , Progressable progress, Options.ChecksumOpt checksumOpt, bool createParent)
        {
            DFSOutputStream dfsos = dfs.PrimitiveCreate(GetUriPath(f), absolutePermission, createFlag
                                                        , createParent, replication, blockSize, progress, bufferSize, checksumOpt);

            return(dfs.CreateWrappedOutputStream(dfsos, statistics, dfsos.GetInitialLen()));
        }
コード例 #2
0
        /// <exception cref="System.IO.IOException"/>
        /// <exception cref="Sharpen.URISyntaxException"/>
        private void OnCreate(ChannelHandlerContext ctx)
        {
            WriteContinueHeader(ctx);
            string               nnId        = @params.NamenodeId();
            int                  bufferSize  = @params.BufferSize();
            short                replication = @params.Replication();
            long                 blockSize   = @params.BlockSize();
            FsPermission         permission  = @params.Permission();
            EnumSet <CreateFlag> flags       = @params.Overwrite() ? EnumSet.Of(CreateFlag.Create, CreateFlag
                                                                                .Overwrite) : EnumSet.Of(CreateFlag.Create);
            DFSClient    dfsClient = NewDfsClient(nnId, confForCreate);
            OutputStream @out      = dfsClient.CreateWrappedOutputStream(dfsClient.Create(path, permission
                                                                                          , flags, replication, blockSize, null, bufferSize, null), null);
            DefaultHttpResponse resp = new DefaultHttpResponse(HttpVersion.Http11, HttpResponseStatus
                                                               .Created);
            URI uri = new URI(HdfsConstants.HdfsUriScheme, nnId, path, null, null);

            resp.Headers().Set(HttpHeaders.Names.Location, uri.ToString());
            resp.Headers().Set(HttpHeaders.Names.ContentLength, 0);
            ctx.Pipeline().Replace(this, typeof(HdfsWriter).Name, new HdfsWriter(dfsClient, @out
                                                                                 , resp));
        }