<!--
{
  "availability" : [
    "iOS: 26.4.0 -",
    "iPadOS: 26.4.0 -",
    "macCatalyst: 26.4.0 -",
    "macOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PhotoKit",
  "identifier" : "/documentation/Photos/PHAssetResourceUploadJobChangeRequest/creationRequestForDownloadJob(resource:)",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "Photos"
    ],
    "preciseIdentifier" : "c:objc(cs)PHAssetResourceUploadJobChangeRequest(cm)creationRequestForDownloadJobWithResource:"
  },
  "title" : "creationRequestForDownloadJob(resource:)"
}
-->

# creationRequestForDownloadJob(resource:)

Creates a download-only job request for the specified asset resource.

```
class func creationRequestForDownloadJob(resource: PHAssetResource) -> Self
```

## Parameters

`resource`

The asset resource to download.

## Return Value

A change request for the created job.

## Discussion

This method registers a job that requests an asset resource be downloaded from iCloud to the device
without uploading it to a remote server. The download operation is performed asynchronously by the
system over time. This is useful when you need to ensure a resource is available locally for processing.

The job will transition through the same states as upload jobs (`PHAssetResourceUploadJobStateRegistered`,
`PHAssetResourceUploadJobStatePending`, and eventually `PHAssetResourceUploadJobStateSucceeded` or
`PHAssetResourceUploadJobStateFailed`), but will only perform a download operation.

Use `fetchJobsWithAction:options:` to check the job’s state. When the job reaches
`PHAssetResourceUploadJobStateSucceeded`, the download has completed successfully.

> Note: The system may subsequently purge the downloaded resource due to system conditions.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)