For advanced use cases where Amplify does not provide the functionality, you can retrieve the escape hatch to access the AWSS3 instance.

import ios0 from "/src/fragments/lib/ios-escape-hatch-warning.mdx";

<Fragments fragments={{ios: ios0}} />

Add the following import:


```swift
import AWSS3StoragePlugin
```

Then retrieve the escape hatch with this code

```swift
do {
    // Retrieve the reference to AWSS3StoragePlugin
    let plugin = try Amplify.Storage.getPlugin(for: "awsS3StoragePlugin")
    guard let storagePlugin = plugin as? AWSS3StoragePlugin else {
        return
    }
    
    // Retrieve the reference to S3Client
    let s3Client = storagePlugin.getEscapeHatch()

    // Make requests using s3Client...
    // ...
} catch {
    print("Get escape hatch failed with error - \(error)")
}
```

For additional client documentation, see the [AWS SDK for Swift Client documentation](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/using-client-services.html).
For S3Client code examples, see the [Amazon S3 examples using SDK for Swift](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/swift_s3_code_examples.html) 