Project

General

Profile

Tools » History » Version 7

Ashlesh Gawande, 08/14/2017 10:35 AM

1 1 Weiqi Shi
Tools
2
=====
3
repo tools use the command line to instruct different behavior of repo.
4
5
## ndnputfile
6
7
This tool is used to insert data into repo.
8
9
    $ndnputfile <command> repo-prefix  ndn-name  filename
10
11
Here is a list of commands supported so far:
12
13
     $ndnputfile -h
14
          -u: unversioned: do not add a version component
15
          -s: single: do not add version or segment component, implies -u
16
          -D: use DigestSha256 signing method instead of SignatureSha256WithRsa
17
          -i: specify identity used for signing Data
18
          -I: specify identity used for signing commands
19
          -x: FreshnessPeriod in milliseconds
20
          -l: InterestLifetime in milliseconds for each command
21
          -w: timeout in milliseconds for whole process (default unlimited)
22
          -v: be verbose
23 2 Weiqi Shi
24
Next, we will introduce these commands one-by-one:
25
26
#### List
27
28
If you want to add a version number manually after the ndn-name, you can specify -u. Otherwise, ndnputfile will automatically append a version number according to current time. For example
29
30 6 Anonymous
    $ndnputfile -u /example/repo/1  /example/data/1/%FD%00%00%01G%F0%C8%AD-  test.txt
31
    $ndnputfile /example/repo/1  /example/data/1/ test.txt
32 2 Weiqi Shi
33 7 Ashlesh Gawande
In both cases, the real ndn-name is /example/data/1/%FD%00%00%01G%F0%C8%AD-.
34 2 Weiqi Shi
35
If you want to use exact one data to storage your file, you can specify -s. Otherwise, your file content will be separated into multiple segmented data 
36
37 6 Anonymous
    $ndnputfile -s /example/repo/1  /example/data/1/  test.txt
38 2 Weiqi Shi
39
In this way, all you content will be stored in one data packet and no segment number will be appended. The real ndn-name for example will be /example/data/1/%FD%00%00%01G%F0%C8%AD-.
40
41
If the file is large enough and cannot be stored into one data packet, you should not specify -s. In this way, ndnputfile will automatically separate the data content and use the segment number to identify different segments.
42
43 6 Anonymous
    $ndnputfile /example/repo/1 /example/data/1/ test.jpg
44 2 Weiqi Shi
45
In this case, data will be segmented and the segment number starts from 0. The real ndn-name could be /example/data/1/%FD%00%00%01G%F0%C8%AD-/%00%00.
46
47
Notice: If the data is not large enough to use segmented data to insert, not specify -s will only generate one segment, whose real ndn-name contain a segment number /%00%00.
48
49
You can specify -D to choose the DigestSha256 as the signing method to sign data packet and command interest
50
51 6 Anonymous
    $ndnputfile -D /example/repo/1  /example/data/1/  test.txt
52 2 Weiqi Shi
53
You can also specify the identity to sign command interest or data by using -I and -i respectively.
54
55 6 Anonymous
    $ndnputfile -I /ndn/test/alice /example/repo/1  /example/data/1  test.txt
56
    $ndnputfile -i /ndn/test/bob /example/repo/1  /example/data/1  test.txt
57 3 Weiqi Shi
58
You can set the data freshness time by using -x. The time is measured in milliseconds. For example:
59
60 6 Anonymous
    $ndnputfile -x 4000 /ndn/test/alice /example/repo/1  /example/data/1  test.txt
61 3 Weiqi Shi
62
If you want to specify the interest life time, you can use -l to set the interest time out value. For example.
63
64 6 Anonymous
    $ndnputfile -l 1000 /ndn/test/alice /example/repo/1  /example/data/1  test.txt
65 3 Weiqi Shi
66
You can use -w to set the timeout for the whole insert process. The process will stop if time expire.
67
68
You can print the log information by specifying -v.
69 4 Weiqi Shi
70
## ndngetfile
71
72
This tool is used to get data from repo.
73
74
    $ndngetfile <command> ndn-name
75
76
Here is a list of commands supported so far:
77
78
    $ndngetfile -h
79
         -v: be verbose
80
         -s: only get single data packet
81
         -u: versioned: ndn-name contains version component.if -u is not specified, this command will return the rightmost child for the prefix
82
         -l: InterestLifetime in milliseconds
83
         -w: timeout in milliseconds for whole process (default unlimited)
84
         -o: write to local file name instead of stdout
85 5 Weiqi Shi
86
Next, we will introduce these commands one-by-one:
87
88
#### List
89
90
If the -s is specified, you will only get one data. This command should only be used when the data is inserted by ndnputfile -s. Otherwise, it may throw an Error.
91
Only single data without segment number will be fetched by this command. For example.
92
93
    $ndngetfile -s /example/data/1
94
95
The data returned can only be /example/data/1/%FD%00%00%01G%F0%C8%AD-, for example. Data with name /example/data/1/%FD%00%00%01G%F0%C8%AD-/%00%00 can never be fetched.
96
If -s is not specified, ndngetfile will try to fetch all the segmented data with the same prefix.
97
98
If you want to manually append the version number after ndn-name, you can specify -u to choose the data with specific version. For example:
99
100
    $ndngetfile -u /example/data/1/%FD%00%00%01G%F0%C8%AD-
101
102
If -u is not specified, the data with newest version number(the rightmost child) will be fetched.
103
104
You can choose to write to the local file by specifying -o. Otherwise, ndngetfile will use stdout. For example:
105
106
    $ndngetfile -o result.txt /example/data/1
107
108
The content will be write to result.txt
109
110
The command -w, -l, -v is similar to ndnputfile.