Draft
Conversation
Add selective download support for job output attachments: - Add --include-path and --include-path-stdin options to download-output for downloading specific files or directory prefixes - Add _filter_paths() and _matches_any_filter() in download.py - Add path_filters parameter to OutputDownloader - Add _validate_and_normalize_include_paths() with path traversal rejection, backslash-to-forward-slash conversion, and normalization - Fix bug in get_job_input_paths_by_asset_root() where S3 root prefix was not prepended to input manifest keys - Extract _run_download_ux(), _get_job_download_context(), _parse_filters_and_config(), _handle_download_error() shared helpers - Update job_attachments_guide.md to document --include-path - Add unit tests for path filtering and validation Signed-off-by: larrygao <larrygao@amazon.com>
Remove remaining download-input references from docstrings and comments. download-input command will be added in a follow-up PR. Signed-off-by: larrygao <larrygao@amazon.com>
Add new download-input command for downloading input attachment files, using the same --include-path filtering and shared UX flow established in the download-output PR. - Add InputDownloader class (inherits from OutputDownloader) - Add _download_job_input() and download-input CLI command - Update job_attachments_guide.md to document download-input Signed-off-by: larrygao <larrygao@amazon.com>
|
leongdl
reviewed
Apr 22, 2026
| Job attachments uses your configured S3 bucket as a [content-addressable storage](https://en.wikipedia.org/wiki/Content-addressable_storage), which creates a snapshot of the files used in your job submission in [asset manifests](#asset-manifests), only uploading files that aren't already in S3. This saves you time and bandwidth when iterating on jobs. When an [AWS Deadline Cloud worker agent][worker-agent] starts working on a job with job attachments, it recreates the file system snapshot in the worker agent session directory, and uploads any outputs back to your S3 bucket. | ||
|
|
||
| You can then easily download your outputs with the [deadline job download-output] command, or using the [protocol handler](#protocol-handler) to download from a click of a button in the [AWS Deadline Cloud monitor][monitor]. | ||
| You can then easily download your outputs with the [deadline job download-output] command, or your inputs with the [deadline job download-input] command. You can also use the [protocol handler](#protocol-handler) to download from a click of a button in the [AWS Deadline Cloud monitor][monitor]. Both commands support `--include-path` for downloading specific files or directories. |
Contributor
There was a problem hiding this comment.
This PR looks like a duplicate of https://github.com/aws-deadline/deadline-cloud/pull/1108/changes, should we review the other one?
leongdl
requested changes
Apr 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Fixes:
What was the problem/requirement? (What/Why)
What was the solution? (How)
What is the impact of this change?
How was this change tested?
See DEVELOPMENT.md for information on running tests.
downloadorasset_syncmodules? If so, then it is highly recommendedthat you ensure that the docker-based unit tests pass.
Was this change documented?
Does this PR introduce new dependencies?
This library is designed to be integrated into third-party applications that have bespoke and customized deployment environments. Adding dependencies will increase the chance of library version conflicts and incompatabilities. Please evaluate the addition of new dependencies. See the Dependencies section of DEVELOPMENT.md for more details.
Is this a breaking change?
A breaking change is one that modifies a public contract in a way that is not backwards compatible. See the
Public Contracts section
of the DEVELOPMENT.md for more information on the public contracts.
If so, then please describe the changes that users of this package must make to update their scripts, or Python applications.
Does this change impact security?
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.