NIH | National Cancer Institute | NCI Wiki  

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Replaced "/cygdrive/c/Users/JaneDoe" with "/NCI/JaneDoe" after discussion with Udit.
Excerpt
hiddentrue

dm_register_dataobject_multipart

If your user account has the Write or Own permission level on an existing collection in DME, and if that existing collection has been configured to contain data files, you can upload register a data file to into that collection. The dm_register_dataobject_multipart command gets a pre-signed URL from DME and uses it to upload data directly to the NCI Data Vault, instead of through DME. If the file is 50 MB or larger, the command registers the file using a multipart presigned URL. If the file is smaller than that threshold, the command registers the file using a single part presigned URL.

The character limit for each metadata value is 2700.

To register a data file:

  1. Choose whether to upload synchronously (from your file system) or asynchronously (from a Globus endpoint). 
    • To upload from your file system, plan to use the source file parameter to specify the file that you want to upload.
    • To upload from Globus, plan to use a JSON file to specify the file that you want to upload. 
  2. In your file In your local system, create a JSON file that specifies the metadata for the new data file. The contents of this file depend on the source of your data:

    If you are uploading from your file system, specify the metadata that you want to upload. Click

     Click the following link to view the syntax:

    Code Blockcollapsetrue

    Panel
    borderColor#C0C0C0
    borderStylesolid
    Expand
    titleSyntax
    Code Block
    { 
        "metadataEntries": [
          {
            "attribute": "description",
            "value": "my-dataObject-description"
          },
          {
            "attribute": "
    my-second-attribute-name
    example_date",
            "value": "
    my-second-attribute-value" } ] }

    If you are uploading from Globus, specify the Globus endpoint, the file path on that endpoint, and the metadata that you want to upload. Click the following link to view the syntax:

    Code Block
    collapsetrue
    { "source": {
    20201231",
            "
    fileContainerId
    dateFormat": "
    globus-shared-endpoint-uid",
    yyyyMMdd"
        
    "fileId":
     
    "file-path-on-shared-globus-endpoint"
     
    }
    ,
    
    
     
    "metadataEntries":
     
    [
      
    { "attribute": "description", "value": "my-file-description" }, { "attribute": "my-second-attribute-name", "value": "my-second-attribute-description" } ] }
    ]
    }
  3. For each date attribute, specify one of the following date formats, and specify the date value in that format:

    • yyyyMMdd
    • yyyy.MM.dd
    • yyyy-MM-dd
    • yyyy/MM/dd
    • MM/dd/yyyy
    • MM-dd-yyyy
    • MM.dd.yyyy

    The system parses your date using the date format you specify. Then however, if the date attribute has a metadata validation rule in a different format, the system stores the date in the format specified by that rule.

  4. Include Page
    shared step - create or update parent collection while registering data file
    shared step - create or update parent collection while registering data file
  5. Run the following command:

    Panel
    borderColorsilver
    borderStylesolid
    Clipboard
    AllowLineWraptrue

    dm_register_dataobject_multipart <description.json> <destination-path> <source-file>

    Run the following command:

    Code Block
    dm_register_dataobject [optional parameters] <description.json> <destination-path> [source-file]


    The following table describes each parameter:

    ParameterDescription
    [-h]If you want to print a usage (help) message for this command, specify this option.
    [-D <REST-response>]

    An optional parameter, specifying a path and filename in your file system. The system always creates a response file:

    • If you specify this parameter, the system saves the response from the server to the specified file in the specified location.
    • If you omit this parameter, the system saves the file as dataObject-registration-response-header.tmp in your home directory.
    [-o <output-json-file>]

    An optional parameter, specifying a path and filename in your file system. The system always creates an output file:

    • If you specify this parameter, the system saves the output to the specified file in the specified location.
    • If you omit this parameter, the system saves the output as dataObject-registration-response-message.json.tmp in your home directory.

    If the command is successful, the output file is empty.

    <description.json>
    A path to the JSON file that specifies the metadata for the new data file.
    <destination-path>
    A path within DME, including the name of the file you intend to uploadregister. Specify where you want the system to create the new data file. (If you specify an existing data file, this command updates the metadata for that data file. For details, refer to Updating Data File Metadata via the CLU.)
    [source-file]
    A path to a file in your file system:
    <source-file>

    If you are

    uploading

    registering from your

    file

    local system, use this parameter to specify the file that you want to

    upload

    register.

  6. If you are uploading from Globus, omit this parameter.

For example, the following command uploads registers the data.txt file from the JaneDoe folder in the file local system to the Project_New collection in DME:

code
Panel
borderColorsilver
borderStylesolid
Clipboard
AllowLineWraptrue

dm_register_dataobject

_multipart /

cygdrive

NCI/

c/Users/

JaneDoe/my-metadata.json

/Example_Archive/PI_Lab1/Project_New/Data.txt

/

cygdrive

NCI/

c/Users/

JaneDoe/data.txt

...