Wiki source code of Using JupyterHub in HDC
Version 6.1 by Dennis Segebarth on 2024/03/01 09:14
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | {{box cssClass="floatinginfobox" title="Table of Contents"}} | ||
2 | {{toc depth="2"/}} | ||
3 | {{/box}} | ||
4 | |||
5 | |||
6 | JupyterHub is an open-source, multi-user version of Jupyter Notebook for performing analysis of Project files in the Core. More information can be found in the application documentation [[https:~~/~~/jupyter.org/>>https://jupyter.org/]]. | ||
7 | |||
8 | [[image:Jupyterhub-Logo-300x100px cropped.png||height="13%" width="20%"]] | ||
9 | |||
10 | |||
11 | = How it Works = | ||
12 | |||
13 | JupyterHub allows Project members to create or import Jupyter Notebooks into the Project Workspace environment, retrieve Project files from the Core, perform computational workflows on the data, and write the outputs back to the Core where they can be accessed by other Project members. JupyterHub spins up a new JupyterLab instance for each Project member. | ||
14 | |||
15 | = Prerequisites = | ||
16 | |||
17 | * Project Collaborator role or higher. | ||
18 | * JupyterHub has been configured for the Project by the Platform Administrator. See //Getting Access to JupyterHub//. | ||
19 | |||
20 | = Data Stewardship = | ||
21 | |||
22 | Users are reminded to abide by the Platform Terms of Use and any Project-specific restrictions when using Workspace tools to access data and code. | ||
23 | |||
24 | = Getting Access to JupyterHub = | ||
25 | |||
26 | JupyterHub is configured at the time of Project Setup. If you launch JupyterHub and receive a notice that it hasn’t been deployed for your project, please contact your Platform Administrator. | ||
27 | |||
28 | = Launching JupyterHub = | ||
29 | |||
30 | [[image:HDC Project Workspace tool navigation Jupyterhub v1.0.0 2023-05-25.png||height="9%" width="25%"]] | ||
31 | |||
32 | 1. Launch your Project and click the **JupyterHub icon** in the left menu bar. | ||
33 | 1. Click **Sign in with Keycloak** to initiate your session. JupyterHub automatically authenticates with your existing username and password and launches your session - no additional sign-in is required. | ||
34 | 1. You can chose to either start a **Minimal environment**, which comes with Python, or a **Datascience environment**, which also includes R and Julia in addition to Python. | ||
35 | 1. From the JupyterHub home page (a JupyterLab interface) you can now perform various actions such as creating and working on Jupyter Notebooks, importing existing ones, and using the Pilot Command Line Interface in the terminal to retrieve, analyze, and re-upload Project Core data, and create. Moreover, you can also use the pre-deployed and configured package management software conda to download, install, and manage for instance Python packages as per individual demand (see the sections //Installing New Python Packages// and //Creating a Virtual Python Environment and Registering a Kernel// below for more details). | ||
36 | 1. When finished using JupyterHub, click **Logout** to end your session. | ||
37 | |||
38 | = Creating a Notebook = | ||
39 | |||
40 | Users can create a new Jupyter Notebook with Python 3 inside JupyterHub, with dedicated and persistent storage under the users' Home Directory. | ||
41 | |||
42 | 1. In the Launcher, click the **Python 3 Notebook **icon, or click **File > New > Notebook**. | ||
43 | 1. Create your Notebook. | ||
44 | |||
45 | [[image:Project Workspace Jupyter Create Python Notebook v2.1.6 2023-02-07.png||height="22%" width="50%"]] | ||
46 | |||
47 | = Launching the Terminal = | ||
48 | |||
49 | JupyterHub provides browser-based terminal access for advanced users to run commands directly in the system shell. Importantly, this allows users to sync data between for instance the Projects Core and their JupyterHub home directory using pilotcli, or to download and manage Python packages. | ||
50 | |||
51 | 1. In the Launcher, click the **Terminal **icon, or click **File > New > Terminal**. | ||
52 | 1. The terminal window opens. | ||
53 | |||
54 | [[image:Project Workspace Jupyter Launch Terminal v2.1.6 2023-02-07.png||height="9%" width="50%"]] | ||
55 | |||
56 | Ubuntu is used to host Jupyter Notebook. Use the command cat /etc/os-release to determine to current version of Ubuntu: | ||
57 | |||
58 | {{code language="none"}} | ||
59 | uname@jupyter-uname:/etc$ cat os-release | ||
60 | NAME="Ubuntu" | ||
61 | VERSION="20.04.4 LTS (Focal Fossa)" | ||
62 | ID=ubuntu | ||
63 | ID_LIKE=debian | ||
64 | PRETTY_NAME="Ubuntu 20.04.4 LTS" | ||
65 | VERSION_ID="20.04" | ||
66 | HOME_URL="https://www.ubuntu.com/" | ||
67 | SUPPORT_URL="https://help.ubuntu.com/" | ||
68 | BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" | ||
69 | PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" | ||
70 | VERSION_CODENAME=focal | ||
71 | UBUNTU_CODENAME=focal | ||
72 | {{/code}} | ||
73 | |||
74 | = Creating a Python Virtual Environment and Registering a Kernel = | ||
75 | |||
76 | The user has full flexibility to use different virtual environment and/or package management systems. Please find the examples of using conda or Pythons in-built venv options described below. Importantly, in either case, the user has to register the new environment as a kernel using ipykernel, to make is accessible via the Jupyter Notebooks (see //Registering the new Virtual Environment as Kernel// for more details). | ||
77 | |||
78 | == Using conda == | ||
79 | |||
80 | The package management software conda by Anaconda has become one of the most popular package management systems, especially for Data and Life Sciences. Therefore, conda is already pre-deployed and configured in each user’s JupyterHub. Please find the full documentation of conda [[here>>url:https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html]], and the corresponding documentation of how to manage virtual environments using conda [[here>>url:https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html]]. The following steps provide a short example of how you can use conda to create a new virtual environment using the JupyterHub terminal within the Platform. | ||
81 | |||
82 | At first, you need to activate conda. Since it is already pre-deployed and configured for you, all you need to do is launch a terminal within JupyterHub (see //Launching the Terminal// above) and execute the command {{code}}source activate{{/code}}. This will activate conda and you can see the success of this by the indication of the currently activated conda environment at the beginning of the line, displayed in parentheses - usually “base”: | ||
83 | |||
84 | {{code language="none"}} | ||
85 | username@jupyter-username:~$ source activate | ||
86 | (base) username@jupyter-username:~$ | ||
87 | {{/code}} | ||
88 | |||
89 | To create a new environment, run the following commands in the terminal after activating conda: | ||
90 | |||
91 | {{code language="none"}} | ||
92 | (base) username@jupyter-username:~$ conda create --name your_env_name | ||
93 | {{/code}} | ||
94 | |||
95 | Replace {{code}}your_env_name{{/code}} with your preferred name for the environment. When being prompted by conda to confirm the creation of the environment at the specified location (per default in the users home directory - please do not change this location, to ensure persistency of your created environment), proceed with the creation by typing “y”, or abort the process by typing “N”. Once confirmed, conda will complete the environment creation process and remind you to activate the environment: | ||
96 | |||
97 | {{code language="none"}} | ||
98 | (base) username@jupyter-username:~$ conda create --name sample_env | ||
99 | Collecting package metadata (current_repodata.json): done | ||
100 | Solving environment: done | ||
101 | |||
102 | ## Package Plan ## | ||
103 | |||
104 | environment location: /home/username/.conda_envs/sample_env | ||
105 | |||
106 | Proceed ([y]/n)? y | ||
107 | |||
108 | Preparing transaction: done | ||
109 | Verifying transaction: done | ||
110 | Executing transaction: done | ||
111 | # | ||
112 | # To activate this environment, use | ||
113 | # | ||
114 | # $ conda activate sample_env | ||
115 | # | ||
116 | # To deactivate an active environment, use | ||
117 | # | ||
118 | # $ conda deactivate | ||
119 | |||
120 | (base) username@jupyter-username:~$ | ||
121 | {{/code}} | ||
122 | |||
123 | Please note, at the end of the environment creation process, you will still remain in the previously activate environment (“base”, in this example). Therefore, please remember to activate the novel environment before installing any packages by running the command {{code}}conda activate your_env_name{{/code}} and replace “your_env_name” with the corresponding name you chose (“sample_env” in this example): | ||
124 | |||
125 | {{code language="none"}} | ||
126 | (base) username@jupyter-username:~$ conda activate sample_env | ||
127 | (/home/username/.conda_envs/sample_env) username@jupyter-username:~$ | ||
128 | {{/code}} | ||
129 | |||
130 | You can now install the desired packages in this new conda environment, for instance using the {{code}}conda install{{/code}} command. For example, in order to install the latest version of Python, run: | ||
131 | |||
132 | {{code language="none"}} | ||
133 | (/home/username/.conda_envs/sample_env) username@jupyter-username:~$ conda install python | ||
134 | {{/code}} | ||
135 | |||
136 | To see a list of all installed packages in the currently activated environment (indicated in parentheses at the beginning of the line, “base” in this case), run: | ||
137 | |||
138 | {{code language="none"}} | ||
139 | (base) username@jupyter-username:~$ conda list | ||
140 | {{/code}} | ||
141 | |||
142 | To see a list of all existing conda environments, run: | ||
143 | |||
144 | {{code language="none"}} | ||
145 | (base) username@jupyter-username:~$ conda info --envs | ||
146 | {{/code}} | ||
147 | |||
148 | Please find many more examples and the full documentation of how to manage conda environments [[here>>url:https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#]]. Importantly, please remember to follow the instructions in the //Registering the new Virtual Environment as Kernel// section below, to make the virtual environment accessible via the Jupyter Notebooks. | ||
149 | |||
150 | == Using venv == | ||
151 | |||
152 | As an alternative to using conda, you can also use the Python native package venv. Please find the full documentation of venv [[here>>url:https://docs.python.org/3/library/venv.html#]], and a short example of how to create a new virtual environment using venv below: | ||
153 | |||
154 | {{code language="none"}} | ||
155 | username@jupyter-username:~$ python3 -m venv your_env_name | ||
156 | username@jupyter-username:~$ source your_env_name/bin/activate | ||
157 | {{/code}} | ||
158 | |||
159 | == Registering the new Virtual Environment as Kernel == | ||
160 | |||
161 | In order to make the newly created virtual environment accessible for the Jupyter Notebooks, you have to register it using ipykernel. Importantly, please make sure that the corresponding environment is currently active before running the following commands: | ||
162 | |||
163 | {{code language="none"}} | ||
164 | username@jupyter-username:~$ python -m ipykernel install --user --name=your_env_name | ||
165 | {{/code}} | ||
166 | |||
167 | Please replace {{code}}your_env_name{{/code}} with the name of your newly created environment. Depending on which package and/or virtual environment management system you chose to use, you may have to install ipykernel in the newly created environment first. Remember to activate the newly created environment and then run one of the following commands to install ipykernel, depending on your package management system of choice: | ||
168 | |||
169 | {{code language="none"}} | ||
170 | (your_env_name) username@jupyter-username:~$ conda install -c anaconda ipykernel | ||
171 | {{/code}} | ||
172 | |||
173 | or: | ||
174 | |||
175 | {{code language="none"}} | ||
176 | username@jupyter-username:~$ pip install ipykernel | ||
177 | {{/code}} | ||
178 | |||
179 | Once you have installed ipykernel, re-run the command above to register your novel environment via ipykernel. | ||
180 | |||
181 | **Example usage:** | ||
182 | |||
183 | {{code language="none"}} | ||
184 | (/home/username/.conda_envs/sample_env) username@jupyter-username:~$ python -m ipykernel install --user --name=sample_env | ||
185 | Installed kernelspec sample_env in /home/username/.local/share/jupyter/kernels/sample_env | ||
186 | (/home/username/.conda_envs/sample_env) username@jupyter-username:~$ | ||
187 | {{/code}} | ||
188 | |||
189 | Afterwards, the environment will be listed when you open the Launcher to open a new Jupyter Notebook: | ||
190 | |||
191 | [[image:Project Workspace Jupyter view new Kernel 2023-07-11.png||height="25%" width="50%"]] | ||
192 | |||
193 | |||
194 | and also from each opened Notebook, e.g., via **Kernel > Change Kernel…** : | ||
195 | |||
196 | [[image:Project Workspace Jupyter Kernel change Kernel dropdown 2023-07-11.png||height="32%" width="25%"]] | ||
197 | |||
198 | = Installing New Python Packages = | ||
199 | |||
200 | We highly recommend the use of virtual environments when installing new packages (see //Creating a Python Virtual Environment and Registering a Kernel// above for more details). Consequently, we recommend installing new packages via commands in the JupyterHub terminal in the corresponding virtual environments, instead of installing packages from within Jupyter Notebooks. | ||
201 | |||
202 | Depending on the IT policies, outbound traffic may need to go through a proxy. If so, users will be required to provide the proxy command line argument such as pip, curl, wget, etc. | ||
203 | |||
204 | For example: | ||
205 | |||
206 | {{code language="none"}} | ||
207 | pip install my_package | ||
208 | {{/code}} | ||
209 | |||
210 | If you are using conda to manage python packages: | ||
211 | |||
212 | {{code language="none"}} | ||
213 | conda install my_package | ||
214 | {{/code}} | ||
215 | |||
216 | The above information is provided as examples only. Please refer to documentation provided by your IT department with respect to proxy configuration. | ||
217 | |||
218 | = Using the Pilot Command Line Interface in a JupyterHub Terminal = | ||
219 | |||
220 | The Pilot Command Line Interface (CLI) is deployed within JupyterHub as extension resource. Project members can use the Pilot Command Line Interface in a JupyterHub terminal to download Project data from the Core for further analysis, and upload the derivative outputs back to the Green Room or Core. | ||
221 | |||
222 | The Home Directory is your default directory. When you download a copy of your Core files to JupyterHub, the files persists in the JupyterHub environment until deleted by you, so you can return to the session and continue your work at a later time without the need to retrieve the data from the Core again. | ||
223 | |||
224 | The following sections focus on getting started with basic pilotcli commands in JupyterHub. For additional pilotcli commands and usage, see the article //Working with HDC Project Files in the Command Line Interface//. | ||
225 | |||
226 | == Launching Pilot Command Line Interface == | ||
227 | |||
228 | 1. Launch your Project and click the **JupyterHub** icon in in the workspace icon group. | ||
229 | 1. Click the **Terminal **launcher icon to open the Terminal. | ||
230 | 1. In the Jupyterhub Terminal, type {{code}}pilotcli{{/code}} to launch the latest version of the Pilot Command Line Interface. | ||
231 | 1. Use the {{code}}pilotcli --help{{/code}} at any time to show the welcome message again. | ||
232 | |||
233 | {{code language="none"}} | ||
234 | collaborator4@jupyter-collaborator4:~$ pilotcli | ||
235 | Usage: pilotcli [OPTIONS] COMMAND [ARGS]... | ||
236 | |||
237 | What's new (Version 2.2.0): | ||
238 | |||
239 | 1. CLI supports to perform multi-threading upload for file/folders | ||
240 | |||
241 | 2. CLI supports to perform resumable upload for single file | ||
242 | |||
243 | |||
244 | |||
245 | Options: | ||
246 | --help Show this message and exit. | ||
247 | |||
248 | Commands: | ||
249 | container_registry Container Registry Actions. | ||
250 | dataset Dataset Actions. | ||
251 | file File Actions. | ||
252 | project Project Actions. | ||
253 | use_config Config Actions. | ||
254 | user User Actions. | ||
255 | {{/code}} | ||
256 | |||
257 | == Logging into the Pilot Command Line Interface == | ||
258 | |||
259 | Users are required to login with platform credentials before performing any tasks through Pilot Command Line Interface. | ||
260 | |||
261 | * Use the command {{code}}pilotcli user login{{/code}} to log into the Pilot Command Line Interface. | ||
262 | |||
263 | {{code language="none"}} | ||
264 | collaborator4@jupyter-collaborator4:~$ pilotcli user login | ||
265 | Please, access https://iam.staging.pilot.indocresearch.com/realms/pilot/device?user_code=XXXX-XXXX to proceed | ||
266 | ▄▄▄▄▄▄▄ ▄ ▄▄ ▄ ▄▄▄▄ ▄ ▄▄▄▄▄▄▄ | ||
267 | █ ▄▄▄ █ ▄ ▄███ ▀▀ █▀ ▀██▄ █ ▄▄▄ █ | ||
268 | █ ▄ ▀ ▄ ▀▄ ▀▀ ▄█▀▄▀ ▀▀▄█▄▄▀ █████▄▄▀▄ | ||
269 | ▄▄▄▄▄▄▄ ▀ ▀█▄ ▀▄ ██▀█ ▄▀▄▄ █ ▄ █▀▄▄▄ | ||
270 | █ ▄▄▄ █ █▀█▄▀ █▀ █▀▀█ ▀▄█▄█▄▄▄█▀▄█ | ||
271 | █ ███ █ █▀██▀▄ █▀▄▄▀▀█▄▀▀█▄▀█ ▀ ▀▄▀██ | ||
272 | █▄▄▄▄▄█ ▄▀▄▄██▄▄▀▄ ▀▀▄ ▄▄▀▀▀▄ █▄▄▄█ | ||
273 | |||
274 | Waiting validation finish... | ||
275 | {{/code}} | ||
276 | |||
277 | * ((( | ||
278 | You’ll be asked to validate your HDC user account using one of the provided methods. | ||
279 | |||
280 | * Copy and paste the provided validation link into a new browser tab or | ||
281 | * Scan the QR code with your mobile device. | ||
282 | ))) | ||
283 | * Open the login window and enter your HDC username and password (i.e. your EBRAINS account credentials). | ||
284 | * Grant access by clicking **Yes**. | ||
285 | |||
286 | [[image:Pilotcli Jupyter user login Grant Access window v2.4.0 2023-05-25.png||height="28%" width="30%"]] | ||
287 | |||
288 | [[image:Pilotcli Jupyter user login Device Login Successful v2.4.0 2023-05-25.png||height="10%" width="30%"]] | ||
289 | |||
290 | * After successful confirmation, return to the terminal in your JupyterHub browser tab. | ||
291 | |||
292 | {{code language="none"}} | ||
293 | Welcome to the Command Line Tool! | ||
294 | {{/code}} | ||
295 | |||
296 | * You’re now ready to start using the Pilot Command Line Interface to work with your Project data in JupyterHub. | ||
297 | |||
298 | == Zone Restrictions when using Pilot Command Line Interface in JupyterHub == | ||
299 | |||
300 | When using the Pilot Command Line Interface in JupyterHub and the following actions are possible on the derivative files generated in JupyterHub: | ||
301 | |||
302 | |=(% colspan="1" rowspan="1" %)((( | ||
303 | **File Operation** | ||
304 | )))|=(% colspan="1" rowspan="1" %)((( | ||
305 | **Permitted in the ** | ||
306 | **Green Room** | ||
307 | )))|=(% colspan="1" rowspan="1" %)((( | ||
308 | **Permitted in the ** | ||
309 | **Core** | ||
310 | ))) | ||
311 | |(% colspan="1" rowspan="1" %)File upload | ||
312 | (upload derivative output files from JupyterHub to the Green Room or Core storage)|(% colspan="1" rowspan="1" %)((( | ||
313 | Yes | ||
314 | )))|(% colspan="1" rowspan="1" %)((( | ||
315 | Yes | ||
316 | ))) | ||
317 | |(% colspan="1" rowspan="1" %)File download | ||
318 | (download files from Green Room or Core into JupyterHub)|(% colspan="1" rowspan="1" %)((( | ||
319 | **No** | ||
320 | )))|(% colspan="1" rowspan="1" %)((( | ||
321 | Yes | ||
322 | ))) | ||
323 | |||
324 | == Downloading Project Data to JupyterHub using the Pilot Command Line Interface == | ||
325 | |||
326 | After logging into the Pilot Command Line Interface, you can download data from the Project Core into the JupyterHub environment to start your data analyses. | ||
327 | |||
328 | File related commands are grouped in the {{code}}file{{/code}} category. To view the full list of commands in this category, type {{code}}pilotcli file --help{{/code}}. To download project data, use the file sync command. To view the full list of commands in this category, type {{code}}pilotcli file sync --help{{/code}}. | ||
329 | |||
330 | |||
331 | {{code language="none"}} | ||
332 | collaborator4@jupyter-collaborator4:~$ pilotcli file sync --help | ||
333 | Usage: pilotcli file sync [OPTIONS] [PATHS]... OUTPUT_PATH | ||
334 | |||
335 | Download files/folders from a given Project/folder/file in core zone. | ||
336 | |||
337 | Options: | ||
338 | -z, --zone TEXT Target Zone (i.e., core/greenroom) | ||
339 | --zip Download files as a zip. | ||
340 | -i, --geid Enable downloading by geid. | ||
341 | --help Show this message and exit. | ||
342 | {{/code}} | ||
343 | |||
344 | === Example === | ||
345 | |||
346 | Downloading a file from the Core to your Home Directory: | ||
347 | |||
348 | Reminder: Please follow Linux conventions for file management. If your filename contains spaces, wrap it in single or double quotes. | ||
349 | |||
350 | * //Filename~:// “Chemical Tracking Data.csv” | ||
351 | * //Source~:// Project “Indoc Test Project”, “Core” storage zone, folder “collaborator4” {{code}}indoctestproject/collaborator4/Chemical Tracking Data.csv -z core{{/code}} | ||
352 | * //Destination: //user's Home directory in the Guacamole or JupyterHub VM {{code}}.{{/code}} | ||
353 | * //Command group/option: //{{code}}file sync{{/code}} | ||
354 | |||
355 | {{code language="none"}} | ||
356 | collaborator4@jupyter-collaborator4:~$ pilotcli file sync indoctestproject/collaborator4/'Chemical Tracking Data.csv' . -z core | ||
357 | start downloading... | ||
358 | Downloading Chemical Tracking Data.csv |██████████████████████████████ 100% 00:00 | ||
359 | File has been downloaded successfully and saved to: ./Chemical Tracking Data.csv | ||
360 | {{/code}} | ||
361 | |||
362 | To confirm successful download, type {{code}}ls{{/code}} and verify the file "Chemical Tracking Data.csv" is stored in the Home folder. | ||
363 | |||
364 | {{code language="none"}} | ||
365 | collaborator4@jupyter-collaborator4:~$ ls | ||
366 | 'Chemical Tracking Data.csv' pilotcli | ||
367 | {{/code}} | ||
368 | |||
369 | The file “Chemical Tracking Data.csv” can be viewed in the JupyterHub graphical user interface: | ||
370 | |||
371 | [[image:Jupyter downloaded file in Home folder v2.4.11 2023-05-25 1850.png||height="15%" width="50%"]] | ||
372 | |||
373 | |||
374 | == Uploading Project Data from JupyterHub using the Pilot Command Line Interface == | ||
375 | |||
376 | After analyzing Project data inside the JupyterHub, you can upload the generated outputs back into the Project via the Pilot Command Line Interface. | ||
377 | |||
378 | === Example === | ||
379 | |||
380 | * //Filename//: Chemical Tracking Data rev.csv | ||
381 | * //Source~:// user's Home directory in JupyterHub {{code}}.{{/code}} | ||
382 | * //Destination//: Project “Indoc Test Project”, folder “collaborator4”, “Core” storage zone, | ||
383 | {{code}}indoctestproject/collaborator4{{/code}} {{code}}-z core{{/code}} | ||
384 | * //Command group/option~:// {{code}}file upload{{/code}} | ||
385 | * //User message// (for upload back to the Core): “my workbench output, no additional sensitive data" | ||
386 | * //Command~:// {{code}}pilotcli file upload ./'Chemical Tracking Data rev.csv' -p{{/code}} {{code}}indoctestproject/collaborator4 -z core -m "my workbench output, no additional sensitive data"{{/code}} | ||
387 | |||
388 | When uploading data to the Core, you are reminded that you are bypassing the usual Green Room upload workflow. To confirm, type {{code}}y{{/code}} at the prompt, or {{code}}N{{/code}} to cancel. | ||
389 | |||
390 | {{code language="none"}} | ||
391 | collaborator4@jupyter-collaborator4:~$ pilotcli file upload ./'Chemical Tracking Data rev.csv' -p indoctestproject/collaborator4 -z core -m "my workbench output, no additional sensitive data" | ||
392 | You are about to transfer data directly to the PILOT Core! In accordance with the PILOT Terms of Use, please confirm that you have made your best efforts to | ||
393 | pseudonymize or anonymize the data and that you have the legal authority to transfer and make this data available for dissemination and use within the PILOT .If you | ||
394 | need to process the data to remove sensitive identifiers, please cancel this transfer and upload the data to the Green Room to perform these actions. | ||
395 | To cancel this transfer, enter [n/No] | ||
396 | To confirm and proceed with the data transfer, enter [y/Yes] | ||
397 | [y/N]: y | ||
398 | Starting upload of: ./Chemical Tracking Data rev.csv | ||
399 | Pre-upload complete. | ||
400 | Uploading Chemical Tracking Data rev.csv: |██████████████████████████████ 100% 00:00 | ||
401 | Upload Time: 2.92s for 1 files | ||
402 | All uploading jobs have finished. | ||
403 | {{/code}} | ||
404 | |||
405 | After completing the upload, you can confirm the new file “Chemical Tracking Data rev.csv" exists in the correct directory using the pilotcli file list command and/or in the Portal File Explorer. | ||
406 | |||
407 | {{code language="none"}} | ||
408 | collaborator4@jupyter-collaborator4:~$ pilotcli file list indoctestproject/collaborator4 -z core | ||
409 | Chemical Tracking Data rev.csv Chemical Tracking Data.csv | ||
410 | {{/code}} | ||
411 | |||
412 | [[image:Jupyterhub file upload back to core v2.4.11 2023-05-25 1926.png||height="13%" width="50%"]] | ||
413 | |||
414 | ---- | ||
415 | |||
416 | Copyright © 2023-2024 [[Indoc Systems>>url:https://www.indocsystems.com]]. | ||
417 | |||
418 | HealthDataCloud is powered by Pilot technology, a product of [[Indoc Systems>>url:https://www.indocsystems.com]]. | ||
419 | |||
420 |