<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: 17.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AVFoundation",
  "identifier" : "/documentation/AVFoundation/AVExternalStorageDevice",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AVFoundation"
    ],
    "preciseIdentifier" : "c:objc(cs)AVExternalStorageDevice"
  },
  "title" : "AVExternalStorageDevice"
}
-->

# AVExternalStorageDevice

Represents a physical external storage device that stores media assets.

```
class AVExternalStorageDevice
```

## Overview

Each storage device instance corresponds to a physical external storage device where the system can media assets. You can access all of the currently available external storage devices with the [`AVExternalStorageDeviceDiscoverySession`](/documentation/AVFoundation/AVExternalStorageDeviceDiscoverySession) object’s [`externalStorageDevices`](/documentation/AVFoundation/AVExternalStorageDeviceDiscoverySession/externalStorageDevices) property.

## Topics

### Checking permission to generate URLs

[`authorizationStatus`](/documentation/AVFoundation/AVExternalStorageDevice/authorizationStatus)

Your app’s authorization status for the external storage device.

### Requesting permission to generate URLs

[`requestAccess(completionHandler:)`](/documentation/AVFoundation/AVExternalStorageDevice/requestAccess(completionHandler:))

Requests access to an external storage device on behalf of your app, which can present a dialog to a person on their device’s display.

### Generating URLs for image assets

[`nextAvailableURLs(withPathExtensions:)`](/documentation/AVFoundation/AVExternalStorageDevice/nextAvailableURLs(withPathExtensions:))

Generates an array of security scoped URLs that are compliant for digital camera formats, where each element has a different path extension.

### Inspecting a storage device

[`isConnected`](/documentation/AVFoundation/AVExternalStorageDevice/isConnected)

A Boolean value that indicates whether the system has a connection to the external storage device.

[`displayName`](/documentation/AVFoundation/AVExternalStorageDevice/displayName)

The name of an external storage device that’s appropriate for a user interface.

[`uuid`](/documentation/AVFoundation/AVExternalStorageDevice/uuid)

The external storage device’s unique identifier.

[`freeSize`](/documentation/AVFoundation/AVExternalStorageDevice/freeSize)

The amount of free storage space, in bytes, that’s available on the external storage device.

[`totalSize`](/documentation/AVFoundation/AVExternalStorageDevice/totalSize)

The total amount of storage space, in bytes, that’s available on the external storage device.

[`isNotRecommendedForCaptureUse`](/documentation/AVFoundation/AVExternalStorageDevice/isNotRecommendedForCaptureUse)

A Boolean value that indicates whether the external storage device is suitable for camera capture.

[`reasonsNotRecommendedForCaptureUse`](/documentation/AVFoundation/AVExternalStorageDevice/reasonsNotRecommendedForCaptureUse)

[`AVExternalStorageDevice.ReasonNotRecommendedForCaptureUse`](/documentation/AVFoundation/AVExternalStorageDevice/ReasonNotRecommendedForCaptureUse)



---

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)