コード例 #1
0
        public async Task <Cid> PutAsync(
            byte[] data,
            string contentType       = Cid.DefaultContentType,
            string multiHash         = MultiHash.DefaultAlgorithmName,
            string encoding          = MultiBase.DefaultAlgorithmName,
            bool pin                 = false,
            CancellationToken cancel = default(CancellationToken))
        {
            var options = new List <string>();

            if (multiHash != MultiHash.DefaultAlgorithmName ||
                contentType != Cid.DefaultContentType ||
                encoding != MultiBase.DefaultAlgorithmName)
            {
                options.Add($"mhtype={multiHash}");
                options.Add($"format={contentType}");
                options.Add($"cid-base={encoding}");
            }
            var json = await ipfs.UploadAsync("block/put", cancel, data, options.ToArray());

            var info = JObject.Parse(json);
            Cid cid  = (string)info["Key"];

            if (pin)
            {
                await ipfs.Pin.AddAsync(cid, recursive : false, cancel : cancel);
            }

            return(cid);
        }
コード例 #2
0
        public async Task <Cid> PutAsync(
            Stream data,
            string contentType       = "dag-cbor",
            string multiHash         = MultiHash.DefaultAlgorithmName,
            string encoding          = MultiBase.DefaultAlgorithmName,
            bool pin                 = true,
            CancellationToken cancel = default(CancellationToken))
        {
            var json = await ipfs.UploadAsync("dag/put", cancel,
                                              data, null,
                                              $"format={contentType}",
                                              $"pin={pin.ToString().ToLowerInvariant()}",
                                              $"hash={multiHash}",
                                              $"cid-base={encoding}");

            var result = JObject.Parse(json);

            return((Cid)(string)result["Cid"]["/"]);
        }
コード例 #3
0
 public async Task ReplaceAsync(JObject config)
 {
     var data = Encoding.UTF8.GetBytes(config.ToString(Formatting.None));
     await ipfs.UploadAsync("config/replace", CancellationToken.None, data);
 }
コード例 #4
0
ファイル: ObjectApi.cs プロジェクト: caunt/IPFS.NET
        public async Task <DagNode> PutAsync(DagNode node, CancellationToken cancel = default(CancellationToken))
        {
            var json = await ipfs.UploadAsync("object/put", cancel, node.ToArray(), "inputenc=protobuf");

            return(node);
        }