several minor feature additions

1. updated shock struct to reflect changes in shock codebase
2. limit upload of attribute file to happen only once when doing parts uploads
3. if 'AttrFile' field is used in input struct, download the nodes attributes to a file with that name