---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NowAttachmentService 클래스 - iOS

# NowAttachmentService 클래스 - iOS {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 58분

NowAttachmentService 클래스는 인스턴스의 ServiceNow 테이블 내 기록과 연결된 첨부 파일을 업로드하고 쿼리할 수 있는 기능을 제공합니다.
각 요청과 함께 단일 파일을 업로드하거나 검색할 수 있습니다. NowAttachmentService 는 최대 파일 크기 및 허용되는 첨부 파일 유형과 같은 업로드된 파일에 대한 시스템 제한을 준수합니다. 인스턴스 속성 com.glide.attachment.max_size, 기본적으로 1024MB 및 glide.attachment.extensions를 사용하여 이러한 설정을 제어할 수 있습니다.  
주:  
NowAttachmentService 는 모든 콘텐츠 형식 값(/)을 허용합니다. 첨부 파일을 업로드할 때 파일 콘텐츠 유형을 지정합니다. 컨텐츠 유형은 파일 메타데이터와 함께 저장되므로 다른 도구에서 파일을 올바르게 식별하고 구문 분석할 수 있습니다.
{#NowAttachmentServiceiOSAPI__table_vx2_klw_5pb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 구성 | [NowService구성](https://servicenow-prod.fluidtopics.net/M3IfRLAWtSzjLKNYBH_PRQ#NowServiceConfigurationiOSStruct "NowServiceConfiguration 구조는 기능 서비스에 대한 구성 정보를 정의합니다.") | 서비스가 초기화될 때 제공된 구성 설정입니다. |
[표 1. 속성]

{#NowAttachmentServiceiOSAPI__table_vx2_klw_5pb}

## NowAttachmentService - attachment(sysId의 경우: 문자열, validateAttachment: 부울) 비동기 throw {#ariaid-title2}

지정된 sys_id로 첨부 파일을 검색하고 첨부 파일의 계산된 해시를 예상 SHA256 체크섬과 비교하여 첨부 파일의 유효성을 확인합니다.
주:  
첨부 파일을 확인하면 성능에 영향을 줄 수 있습니다. 매개변수를 validateAttachment`false`로 설정하여 확인 단계를 건너뛸 수 있습니다. 필요한 경우 Attachment.validate() 함수를 호출하여 나중 단계에서 첨부 파일을 확인할 수 있습니다.
{#NAttServiOS-attachment-async_S_B_O__table_dqr_hmx_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId용 | 문자열 | 검색할 첨부 파일의 Sys_id입니다. |
| validateAttachment | 부울 | 첨부 파일의 유효성을 검사할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 첨부 파일을 확인합니다. * false: 첨부 파일을 확인하지 않습니다. 기본값: true |
[표 2. 매개변수]

{#NAttServiOS-attachment-async_S_B_O__table_dqr_hmx_spb} {#NAttServiOS-attachment-async_S_B_O__table_eqr_hmx_spb__entry__2}

| 유형 | 설명 |
|-|-|
| Now첨부 파일 | 메서드가 성공하면 반환됩니다. 지정된 첨부 파일입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-attachment-async_S_B_O__NowDataErroriOS-ul-enum} |
[표 3. 반환]

{#NAttServiOS-attachment-async_S_B_O__table_eqr_hmx_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    func downloadAttachment(sysId: String) async throws -> NowAttachment {
        do {
            let nowAttachment = try await attachmentService.attachment(for: sysId, validateAttachment: false)
            return nowAttachment
        } catch {
            // Handle NowDataError
            throw error
        }
    }

## NowAttachmentService - attachment(sysId의 경우: 문자열, validateAttachment: 부울, 완성: @escaping(결과\<NowAttachment, NowDataError\>)) {#ariaid-title3}

지정된 sys_id로 첨부 파일을 검색하고 첨부 파일의 계산된 해시를 예상 SHA256 체크섬과 비교하여 첨부 파일의 유효성을 확인합니다. 완료되면 전달된 완성 핸들러를 실행합니다.
주:  
첨부 파일을 확인하면 성능에 영향을 줄 수 있습니다. 매개변수를 validateAttachment`false`로 설정하여 확인 단계를 건너뛸 수 있습니다. 필요한 경우 Attachment.validate() 함수를 호출하여 나중 단계에서 첨부 파일을 확인할 수 있습니다.
{#NAttServiOS-attachment_S_B_O__table_dqr_hmx_spb__entry__3}{#NAttServiOS-attachment_S_B_O__mobilesdkiOS-completion_data_dataerror-row}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId용 | 문자열 | 검색할 첨부 파일의 Sys_id입니다. |
| validateAttachment | 부울 | 첨부 파일의 유효성을 검사할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 첨부 파일을 확인합니다. * false: 첨부 파일을 확인하지 않습니다. {#NAttServiOS-attachment_S_B_O__ul_ftq_1q5_4pb} 기본값: true |
| 완료 | @escaping(결과\<[NowAttachment](https://servicenow-prod.fluidtopics.net/ina_LPIjBJf2E2HyAaXx4A#NowAttachmentiOSStructure "NowAttachment 구조체는 계산된 해시를 비교하여 첨부 파일의 유효성을 검사할 수 있는 기능을 제공합니다."), NowDataError\>) | 첨부 파일을 검색한 후 실행할 완성 핸들러입니다. 완성 핸들러에 대한 반환 값: * 성공: [NowAttachment](https://servicenow-prod.fluidtopics.net/ina_LPIjBJf2E2HyAaXx4A#NowAttachmentiOSStructure "NowAttachment 구조체는 계산된 해시를 비교하여 첨부 파일의 유효성을 검사할 수 있는 기능을 제공합니다.") - 요청된 첨부 파일 * 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-attachment_S_B_O__NowDataErroriOS-ul-enum} {#NAttServiOS-attachment_S_B_O__ul_uzx_thj_ppb} |
[표 4. 매개변수]

{#NAttServiOS-attachment_S_B_O__table_dqr_hmx_spb} {#NAttServiOS-attachment_S_B_O__table_eqr_hmx_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 5. 반환]

{#NAttServiOS-attachment_S_B_O__table_eqr_hmx_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    let sysId = UUID().uuidString  // UUID for the attachment
    private func downloadAttachment(sysId: String) {
      attachmentService.attachment(for: sysId, validateAttachment: false) { (result) in
        switch result {
          case .success(let attachment):
            // Attachment retrieved successful, return attachment
          case .failure(let error):
            // Attachment retrieved failed, return NowDataError
        }
      }
    }

## NowAttachmentService - attachment(sysId의 경우: 문자열, validateAttachment: 부울) {#ariaid-title4}

지정된 sys_id이 있는 첨부 파일을 검색하고 첨부 파일의 계산된 해시를 예상 해시와 비교하여 첨부 파일의 유효성을 확인합니다.
주:  
첨부 파일을 확인하면 성능에 영향을 줄 수 있습니다. 매개변수를 validateAttachment`false`로 설정하여 확인 단계를 건너뛸 수 있습니다. 필요한 경우 Attachment.validate() 함수를 호출하여 나중 단계에서 첨부 파일의 유효성을 검사할 수 있습니다.  
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
{#NAttServiOS-attachment_S_B__table_w4s_d3s_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId용 | 문자열 | 검색할 첨부 파일의 Sys_id입니다. |
| validateAttachment | 부울 | 첨부 파일의 유효성을 검사할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다. * true: 첨부 파일을 확인합니다. * false: 첨부 파일을 확인하지 않습니다. {#NAttServiOS-attachment_S_B__ul_ftq_1q5_4pb} 기본값: true |
[표 6. 매개변수]

{#NAttServiOS-attachment_S_B__table_w4s_d3s_spb} {#NAttServiOS-attachment_S_B__table_x4s_d3s_spb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<[NowAttachment](https://servicenow-prod.fluidtopics.net/ina_LPIjBJf2E2HyAaXx4A#NowAttachmentiOSStructure "NowAttachment 구조체는 계산된 해시를 비교하여 첨부 파일의 유효성을 검사할 수 있는 기능을 제공합니다."), NowDataError\> | 성공: [NowAttachment](https://servicenow-prod.fluidtopics.net/ina_LPIjBJf2E2HyAaXx4A#NowAttachmentiOSStructure "NowAttachment 구조체는 계산된 해시를 비교하여 첨부 파일의 유효성을 검사할 수 있는 기능을 제공합니다.") - 지정된 첨부 파일을 포함합니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-attachment_S_B__NowDataErroriOS-ul-enum} |
[표 7. 반환]

{#NAttServiOS-attachment_S_B__table_x4s_d3s_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    let sysId = UUID().uuidString  // UUID for the attachment
    private func downloadAttachment(sysId: String) {
      let publisher = self.attachmentService.attachment(for: sysId, validateAttachment: false)
      publisher
        .receive(on: DispatchQueue.main)
        .sink { [weak self] completion in
          if case let .failure(error) = completion {
            // Attachment retrieved failed, return NowDataError
          }
        } receiveValue: { [weak self] (attachment) in
          // Attachment retrieved successful, return attachment
        }
        .store(in: &subscriptions)
    }

## NowAttachmentService - attachmentMetadata(filter: Filter, limit: Int) 비동기 throw {#ariaid-title5}

지정된 기준을 충족하는 모든 첨부 파일에 대한 메타데이터를 검색합니다.
{#NAttServiOS-attachMeta-async_S_I_O__table_tcn_cfs_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 필터 | [필터](https://servicenow-prod.fluidtopics.net/qt6NnTTsMN_CpXyTGIoRfw#FilteriOSStructure "필터 구조는 REST 엔드포인트 쿼리의 반환 결과에 반환할 데이터를 정의하는 필터를 구성하는 기능을 제공합니다.") | 옵션입니다. 반환할 메타데이터가 포함된 첨부 파일을 필터링하는 데 사용할 쿼리 문자열입니다. 기본값: nil - 사용 가능한 모든 첨부 파일에 대한 메타데이터를 반환합니다. 매개변수를 limit 고려합니다. |
| 제한 | 정수 | 옵션입니다. 반환할 첨부 파일의 메타데이터 최대 수입니다. 기본값: nil - 매개변수 사양을 충족하는 모든 메타데이터를 반환합니다 filter . |
[표 8. 매개변수]

{#NAttServiOS-attachMeta-async_S_I_O__table_tcn_cfs_spb} {#NAttServiOS-attachMeta-async_S_I_O__table_ucn_cfs_spb__entry__2}

| 유형 | 설명 |
|-|-|
| \[NowAttachment메타데이터\] | 메서드가 성공하면 반환됩니다. 일치하는 첨부 파일에 대한 메타데이터를 포함하는 배열입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-attachMeta-async_S_I_O__NowDataErroriOS-ul-enum} |
[표 9. 반환]

{#NAttServiOS-attachMeta-async_S_I_O__table_ucn_cfs_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    let filter = Filter(criteria: [], sortBy: [.desc("created")],
                 queryCategory: nil)
    do {
        let metadata = try await attachmentService.attachmentMetadata(filter: filter, limit: 10)
        // Metadata retrieval successful
    } catch {
        // Metadata retrieval failed, NowDataError thrown
    }

## NowAttachmentService - attachmentMetadata(필터: 필터, 제한: Int, 완성: @escaping(결과\<\[NowAttachmentMetadata\], NowDataError\>)) {#ariaid-title6}

지정된 기준을 충족하는 모든 첨부 파일에 대한 메타데이터를 검색합니다.
{#NAttServiOS-attachMetadata_S_I_O__table_tcn_cfs_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 필터 | [필터](https://servicenow-prod.fluidtopics.net/qt6NnTTsMN_CpXyTGIoRfw#FilteriOSStructure "필터 구조는 REST 엔드포인트 쿼리의 반환 결과에 반환할 데이터를 정의하는 필터를 구성하는 기능을 제공합니다.") | 옵션입니다. 반환할 메타데이터가 포함된 첨부 파일을 필터링하는 데 사용할 쿼리 문자열입니다. 기본값: nil - 사용 가능한 모든 첨부 파일에 대한 메타데이터를 반환합니다. 매개변수를 limit 고려합니다. |
| 제한 | 정수 | 옵션입니다. 반환할 첨부 파일의 메타데이터 최대 수입니다. 기본값: nil - 매개변수 사양을 충족하는 모든 메타데이터를 반환합니다 filter . |
| 완료 | @escaping(결과\<\[[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/fYOGxhJ16scyOTN~FAELvg#NowAttachmentMetadataiOSStructure "NowAttachmentMetadata 구조체는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 기능을 제공합니다.")\], NowDataError\>) | 메타데이터를 검색한 후 실행할 완성 핸들러입니다. 완성 핸들러에 대한 반환 값: * 성공: NowAttachmentMetadata - 요청된 메타데이터를 포함하는 객체입니다. * 오류: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-attachMetadata_S_I_O__NowDataErroriOS-ul-enum} {#NAttServiOS-attachMetadata_S_I_O__ul_uzx_thj_ppb} |
[표 10. 매개변수]

{#NAttServiOS-attachMetadata_S_I_O__table_tcn_cfs_spb} {#NAttServiOS-attachMetadata_S_I_O__table_ucn_cfs_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 11. 반환]

{#NAttServiOS-attachMetadata_S_I_O__table_ucn_cfs_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    let query = "active=true^short_descriptionLIKEbroken"
    let filter = Filter(query: query)
    attachmentService.attachmentMetadata(filter: filter, limit: limit) { (result) in
      DispatchQueue.main.async { [weak self] in
        switch result {
        case .success(let response):
          do {
            let data = try JSONEncoder().encode(response)
            // Retrieve metadata successfully, return data
          } catch {
            // Retrieve metadata failed, return error 
          }
        case .failure(let error):
          // Retrieve metadata failed, return NowDataError
        }	
      }
    }

## NowAttachmentService - attachmentMetadata(filter: Filter, limit: Int) {#ariaid-title7}

지정된 기준을 충족하는 모든 첨부 파일에 대한 메타데이터를 검색합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
{#NAttServiOS-attachMetadata_S_I__table_ahv_32s_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 필터 | [필터](https://servicenow-prod.fluidtopics.net/qt6NnTTsMN_CpXyTGIoRfw#FilteriOSStructure "필터 구조는 REST 엔드포인트 쿼리의 반환 결과에 반환할 데이터를 정의하는 필터를 구성하는 기능을 제공합니다.") | 옵션입니다. 반환할 메타데이터가 포함된 첨부 파일을 필터링하는 데 사용할 쿼리 문자열입니다. 기본값: nil - 사용 가능한 모든 첨부 파일에 대한 메타데이터를 반환합니다. 매개변수를 limit 고려합니다. |
| 제한 | 정수 | 옵션입니다. 반환할 첨부 파일의 메타데이터 최대 수입니다. 기본값: nil - 매개변수 사양을 충족하는 모든 메타데이터를 반환합니다 filter . |
[표 12. 매개변수]

{#NAttServiOS-attachMetadata_S_I__table_ahv_32s_spb} {#NAttServiOS-attachMetadata_S_I__table_bhv_32s_spb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<\[[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/fYOGxhJ16scyOTN~FAELvg#NowAttachmentMetadataiOSStructure "NowAttachmentMetadata 구조체는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 기능을 제공합니다.")\], NowDataError\> | 성공: NowAttachmentMetadata - 일치하는 첨부 파일에 대한 메타데이터를 포함하는 객체입니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-attachMetadata_S_I__NowDataErroriOS-ul-enum} |
[표 13. 반환]

{#NAttServiOS-attachMetadata_S_I__table_bhv_32s_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    let query = "active=true^short_descriptionLIKEbroken"
    let filter = Filter(query: query)
    let publisher = self.attachmentService.attachmentMetadata(filter: filter)
    publisher
      .receive(on: DispatchQueue.main)
      .encode(encoder: JSONEncoder())
      .sink { [weak self] completion in
        if case let .failure(error) = completion {
          // Retrieve metadata failed, return NowDataError
      } receiveValue: { [weak self] (data) in
         // Retrieve metadata successfully, return data
      }
    .store(in: &subscriptions

## NowAttachmentService - attachmentMetadata(sysId의 경우: 문자열) 비동기 throw {#ariaid-title8}

지정된 sys_id과 연결된 첨부 파일의 메타데이터를 검색합니다.
{#NAttServiOS-attachMeta-async_S_O__table_ldt_3hs_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId용 | 문자열 | 메타데이터를 검색할 첨부 파일의 Sys_id입니다. |
[표 14. 매개변수]

{#NAttServiOS-attachMeta-async_S_O__table_ldt_3hs_spb} {#NAttServiOS-attachMeta-async_S_O__table_mdt_3hs_spb__entry__2}

| 유형 | 설명 |
|-|-|
| NowAttachment메타데이터 | 메서드가 성공하면 반환됩니다. 요청된 첨부 파일의 메타데이터입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-attachMeta-async_S_O__NowDataErroriOS-ul-enum} |
[표 15. 반환]

{#NAttServiOS-attachMeta-async_S_O__table_mdt_3hs_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    do {
        let metadata = try await attachmentService.attachmentMetadata(for: sysId)
        // Metadata retrieval successful
    } catch {
        // Metadata retrieval failed, NowDataError thrown
    }

## NowAttachmentService - attachmentMetadata(sysId의 경우: 문자열, 완성: @escaping(결과\<NowAttachmentMetadata, NowDataError\>)) {#ariaid-title9}

지정된 sys_id과 연결된 첨부 파일의 메타데이터를 검색한 다음 메타데이터를 검색한 후 완성 핸들러를 실행합니다.
{#NAttServiOS-attachMetadata_S_O__table_ldt_3hs_spb__entry__3}{#NAttServiOS-attachMetadata_S_O__mobilesdkiOS-completion_data_dataerror-row}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId용 | 문자열 | 메타데이터를 검색할 첨부 파일의 Sys_id입니다. |
| 완료 | @escaping(결과\<[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/fYOGxhJ16scyOTN~FAELvg#NowAttachmentMetadataiOSStructure "NowAttachmentMetadata 구조체는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 기능을 제공합니다."), NowDataError\>) | 메타데이터를 검색한 후 실행할 완성 핸들러입니다. 완성 핸들러에 대한 반환 값: * 성공: [NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/fYOGxhJ16scyOTN~FAELvg#NowAttachmentMetadataiOSStructure "NowAttachmentMetadata 구조체는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 기능을 제공합니다.") - 요청된 메타데이터 * 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-attachMetadata_S_O__NowDataErroriOS-ul-enum} {#NAttServiOS-attachMetadata_S_O__ul_uzx_thj_ppb} |
[표 16. 매개변수]

{#NAttServiOS-attachMetadata_S_O__table_ldt_3hs_spb} {#NAttServiOS-attachMetadata_S_O__table_mdt_3hs_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 17. 반환]

{#NAttServiOS-attachMetadata_S_O__table_mdt_3hs_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    let sysId = UUID().uuidString  // UUID for the attachment
    attachmentService.attachmentMetadata(for: sysId) { (result) in
      DispatchQueue.main.async { [weak self] in
        switch result {
          case .success(let response):
            do {
              let data = try JSONEncoder().encode(response)
              // Retrieve metadata successfully, return data
            } catch {
              // Retrieve metadata failed, return error      
            }
          case .failure(let error):
            // Retrieve metadata failed, return NowDataError
        }	
      }
    }

## NowAttachmentService - attachmentMetadata(sysId의 경우: 문자열) {#ariaid-title10}

지정된 sys_id과 연결된 첨부 파일의 메타데이터를 검색합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
{#NAttServiOS-attachMetadata_S__table_shc_ngs_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId용 | 문자열 | 메타데이터를 검색할 첨부 파일의 Sys_id입니다. |
[표 18. 매개변수]

{#NAttServiOS-attachMetadata_S__table_shc_ngs_spb} {#NAttServiOS-attachMetadata_S__table_thc_ngs_spb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<\[[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/fYOGxhJ16scyOTN~FAELvg#NowAttachmentMetadataiOSStructure "NowAttachmentMetadata 구조체는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 기능을 제공합니다.")\], NowDataError\> | 성공: NowAttachmentMetadata - 요청된 첨부 파일에 대한 메타데이터를 포함하는 객체입니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-attachMetadata_S__NowDataErroriOS-ul-enum} |
[표 19. 반환]

{#NAttServiOS-attachMetadata_S__table_thc_ngs_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    let sysId = UUID().uuidString  // UUID for the attachment
    let publisher = self.attachmentService.attachmentMetadata(for: sysId)
    publisher
      .receive(on: DispatchQueue.main)
      .encode(encoder: JSONEncoder())
      .sink { [weak self] completion in
        if case let .failure(error) = completion {
          // Retrieve metadata failed, return NowDataError
        }
      } receiveValue: { [weak self] (data) in
         // Retrieve metadata successfully, return data
      }
    .store(in: &subscriptions)

## NowAttachmentService - attachmentMetadataPaginator(filter: Filter, limit: Int) {#ariaid-title11}

지정된 기준을 충족하는 모든 첨부 파일에 대한 메타데이터를 검색하고 반환된 메타데이터의 페이지를 반복하기 위한 Paginator 객체를 반환합니다.
{#NAttServiOS-attachMetadataPag_S_I__table_tqh_dcs_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 필터 | [필터](https://servicenow-prod.fluidtopics.net/qt6NnTTsMN_CpXyTGIoRfw#FilteriOSStructure "필터 구조는 REST 엔드포인트 쿼리의 반환 결과에 반환할 데이터를 정의하는 필터를 구성하는 기능을 제공합니다.") | 옵션입니다. 반환할 메타데이터가 포함된 첨부 파일을 필터링하는 데 사용할 쿼리 문자열입니다. 기본값: nil - 사용 가능한 모든 첨부 파일에 대한 메타데이터를 반환합니다. 매개변수를 limit 고려합니다. |
| 제한 | 정수 | 옵션입니다. 반환할 첨부 파일의 메타데이터 최대 수입니다. 기본값: nil - 매개변수 사양을 충족하는 모든 메타데이터를 반환합니다 filter . |
[표 20. 매개변수]

{#NAttServiOS-attachMetadataPag_S_I__table_tqh_dcs_spb} {#NAttServiOS-attachMetadataPag_S_I__table_uqh_dcs_spb__entry__2}

| 유형 | 설명 |
|-|-|
| [Paginator](https://servicenow-prod.fluidtopics.net/vTuXxN08qceibKxp4PjxHQ#PaginatorIOSAPI "Paginator 클래스는 NowTableService를 통해 ServiceNow 테이블 API에 대한 호출로 반환된 레코드 집합을 반복하기 위한 메서드를 제공합니다. 이는 NowTableService paginator() 메서드에서 반환되는 객체입니다. 해당 환경 외부에서는 이 메서드를 호출하지 마십시오.")\<\[[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/fYOGxhJ16scyOTN~FAELvg#NowAttachmentMetadataiOSStructure "NowAttachmentMetadata 구조체는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 기능을 제공합니다.")\]\> | 성공: NowAttachmentMetadata 객체의 배열입니다. 실패: NowDataError 객체. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-attachMetadataPag_S_I__NowDataErroriOS-ul-enum} |
[표 21. 반환]

{#NAttServiOS-attachMetadataPag_S_I__table_uqh_dcs_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    let paginator: Paginator<T> = makePaginator(query: query, fetchLimit: 1)

    func makePaginator(query: String, fetchLimit: Int?) -> Paginator<[NowAttachmentMetadata]> {
      attachmentsService.attachmentMetadataPaginator(filter: Filter(query: query), limit: fetchLimit)
    }

## NowAttachmentService - 삭제(sysId: 문자열) 비동기 throw {#ariaid-title12}

지정된 sys_id 첨부 파일을 삭제합니다.
{#NAttServiOS-delete-async_S_O__table_e5b_zqx_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 삭제할 첨부 파일의 Sys_id입니다. |
[표 22. 매개변수]

{#NAttServiOS-delete-async_S_O__table_e5b_zqx_spb} {#NAttServiOS-delete-async_S_O__table_f5b_zqx_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 | 메서드가 성공하면 아무 것도 반환되지 않습니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-delete-async_S_O__NowDataErroriOS-ul-enum} |
[표 23. 반환]

{#NAttServiOS-delete-async_S_O__table_f5b_zqx_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    do {
        try await attachmentService.delete(sysId: sysId)
        // Deletion successful
    } catch {
        // Deletion failed, NowDataError thrown
    }

## NowAttachmentService - delete(sysId: String, completion: @escaping (Result\<Void, NowDataError\>)) {#ariaid-title13}

지정된 sys_id로 첨부 파일을 삭제하고 첨부 파일이 삭제된 후 전달된 완성 핸들러를 실행합니다.
{#NAttServiOS-delete_S_O__table_e5b_zqx_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 삭제할 첨부 파일의 Sys_id입니다. |
| 완료 | @escaping(결과\<무효, NowDataError\>) | 첨부 파일이 삭제된 후 실행할 완성 핸들러입니다. 완성 핸들러에 대한 반환 값: * 성공: 무효 * 오류: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-delete_S_O__NowDataErroriOS-ul-enum} |
[표 24. 매개변수]

{#NAttServiOS-delete_S_O__table_e5b_zqx_spb} {#NAttServiOS-delete_S_O__table_f5b_zqx_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 25. 반환]

{#NAttServiOS-delete_S_O__table_f5b_zqx_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    let sysId = UUID().uuidString  // UUID for the attachment
    attachmentService.delete(sysId: sysId) { (result) in
      DispatchQueue.main.async { [weak self] in
        switch result {
          case .success:
            // Attachment with sysId is deleted
          case .failure(let error):
            // Failed to delete, with NowDataError
        }
      }
    }

## NowAttachmentService - 삭제(sysId: 문자열) {#ariaid-title14}

지정된 sys_id 첨부 파일을 삭제합니다.
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
{#NAttServiOS-delete_S__table_svp_2qx_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| sysId | 문자열 | 삭제할 첨부 파일의 Sys_id입니다. |
[표 26. 매개변수]

{#NAttServiOS-delete_S__table_svp_2qx_spb} {#NAttServiOS-delete_S__table_tvp_2qx_spb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<무효, NowDataError\> | 성공: 아무 것도 반환되지 않음 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-delete_S__NowDataErroriOS-ul-enum} |
[표 27. 반환]

{#NAttServiOS-delete_S__table_tvp_2qx_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    let publisher = attachmentService.delete(sysId: sysId)
    publisher
      .receive(on: DispatchQueue.main)
      .sink { [weak self] completion in
        switch completion {
          case .finished:
            // Attachment with sysId is deleted
          case .failure(let error):
           // Failed to delete, with NowDataError
       }
     } receiveValue: {
     }
     .store(in: &subscriptions)

## NowAttachmentService - init(configuration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding) {#ariaid-title15}

새 NowAttachmentService 인스턴스를 초기화합니다.
{#NAttServiOS-init_O_O__table_hfm_ry2_tpb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 구성 | [NowService구성](https://servicenow-prod.fluidtopics.net/M3IfRLAWtSzjLKNYBH_PRQ#NowServiceConfigurationiOSStruct "NowServiceConfiguration 구조는 기능 서비스에 대한 구성 정보를 정의합니다.") | 서비스를 올바르게 초기화하는 데 필요한 구성 정보입니다. |
| coreServiceProvider | NowCoreService제공 | 옵션입니다. NowCoreServiceProviding 프로토콜을 구현하는 객체입니다. 기본값: nil |
[표 28. 매개변수]

{#NAttServiOS-init_O_O__table_hfm_ry2_tpb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    guard let coreService = NowSDK.core() else {
      // Error with NowServiceError.sdkNotConfigured
      return
    }
    guard 
      let instanceUrl = URL(string: "http://sample.service-now.com"), 
      let serviceConfig = NowSDK.makeServiceConfiguration(for: instanceUrl) else {
        // Could not create service -- 
        // NowServiceError.serviceConfigurationInvalid
        return
    }
    let attachmentService = NowAttachmentService(configuration: serviceConfig, coreServiceProvider: coreService)

## NowAttachmentService - upload(data: Data, configuration: NowAttachmentUploadConfiguration, progressUpdate: @escaping ProgressUpdate) 비동기 발생 {#ariaid-title16}

첨부 파일 데이터를 업로드하고 업로드 구성에 지정된 대로 테이블의 기록에 첨부합니다.
ProgressUpdate 콜백은 UI 피드백을 제공하는 데 사용할 수 있는 업로드 진행률 정보를 제공합니다.
{#NAttServiOS-upload-async_O_O_O_O__table_n5z_mpx_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 데이터 | 데이터 | 업로드할 첨부 파일입니다. |
| 구성 | [NowAttachmentUpload 구성](https://servicenow-prod.fluidtopics.net/t8XclPycCPA9a~_gsywHWQ#NowAttachUploadConfigiOSStruct "NowAttachmentUploadConfiguration 구조를 사용하면 인스턴스에 업로드하는 첨부 파일에 대한 구성 정보를 정의할 수 있습니다ServiceNow.") | 다음과 같이 첨부 파일에 대한 업로드 매개변수를 정의하는 구성 정보입니다. * 파일을 첨부할 테이블 및 기록 * 첨부 파일 이름 * 첨부 파일 유형 * 파일이 암호화되었는지 여부 |
| 진행률 업데이트 | @escaping ProgressUpdate | 첨부 파일을 검색한 후 실행할 완성 핸들러입니다. 업로드 프로세스가 완료될 때까지 여러 번 호출됩니다. 완성 핸들러에 대한 반환 값: ProgressUpdate - 업로드의 현재 진행률을 반환합니다. `ProgressUpdate = (_bytesWritten: Int64, _totalBytesWritten: Int64, _totalBytesExpectedToWrite: Int64) -> Void` |
[표 29. 매개변수]

{#NAttServiOS-upload-async_O_O_O_O__table_n5z_mpx_spb} {#NAttServiOS-upload-async_O_O_O_O__table_o5z_mpx_spb__entry__2}

| 유형 | 설명 |
|-|-|
| NowAttachment메타데이터 | 메서드가 성공하면 반환됩니다. 업로드된 메타데이터가 포함된 객체입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-upload-async_O_O_O_O__NowDataErroriOS-ul-enum} |
[표 30. 반환]

{#NAttServiOS-upload-async_O_O_O_O__table_o5z_mpx_spb}  
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    func uploadFile(for tableName: String, sysId: String, mimeType: String, encryptionContext: String?, data: Data, filename: String) async throws -> NowAttachmentMetadata { 

        let mimeType = MediaUtilities.mimeType(forFileName: filename)
        let uploadConfig = NowAttachmentUploadConfiguration(tableName: tableName, 
                                                            recordSysId: sysId,
                                                            fileName: filename,
                                                            contentType: mimeType,
                                                            encryptionContext: encryptionContext) 

        do {
            let attachmentMetadata = try await attachmentService.upload(data: data, configuration: uploadConfig) { (_, _, _) in }
            return attachmentMetadata
        } catch {
            // Handle NowDataError
            throw error
        }
    }

## NowAttachmentService - upload(data: Data, configuration: NowAttachmentUploadConfiguration, progressUpdate: @escaping ProgressUpdate, completion: @escaping (Result\<NowAttachmentMetadata, NowDataError\>)) {#ariaid-title17}

첨부 파일 데이터를 업로드하고 업로드 구성에 지정된 대로 테이블의 기록에 첨부합니다.
ProgressUpdate 콜백은 UI 피드백을 제공하는 데 사용할 수 있는 업로드 진행률 정보를 제공합니다.
{#NAttServiOS-upload_O_O_O_O__table_n5z_mpx_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 데이터 | 데이터 | 업로드할 첨부 파일입니다. |
| 구성 | [NowAttachmentUpload 구성](https://servicenow-prod.fluidtopics.net/t8XclPycCPA9a~_gsywHWQ#NowAttachUploadConfigiOSStruct "NowAttachmentUploadConfiguration 구조를 사용하면 인스턴스에 업로드하는 첨부 파일에 대한 구성 정보를 정의할 수 있습니다ServiceNow.") | 다음과 같이 첨부 파일에 대한 업로드 매개변수를 정의하는 구성 정보입니다. * 파일을 첨부할 테이블 및 기록 * 첨부 파일 이름 * 첨부 파일 유형 * 파일이 암호화되었는지 여부 |
| 진행률 업데이트 | @escaping ProgressUpdate | 첨부 파일을 검색한 후 실행할 완성 핸들러입니다. 업로드 프로세스가 완료될 때까지 여러 번 호출됩니다. 완성 핸들러에 대한 반환 값: ProgressUpdate - 업로드의 현재 진행률을 반환합니다. `ProgressUpdate = (_bytesWritten: Int64, _totalBytesWritten: Int64, _totalBytesExpectedToWrite: Int64) -> Void` |
| 완료 | @escaping(결과\<[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/fYOGxhJ16scyOTN~FAELvg#NowAttachmentMetadataiOSStructure "NowAttachmentMetadata 구조체는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 기능을 제공합니다."), NowDataError\>) | 메타데이터가 업로드된 후 실행할 완성 핸들러입니다. 완성 핸들러에 대한 반환 값: * 성공: [NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/fYOGxhJ16scyOTN~FAELvg#NowAttachmentMetadataiOSStructure "NowAttachmentMetadata 구조체는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 기능을 제공합니다.") - 업로드된 첨부 파일에 대한 메타데이터를 포함하는 객체입니다. * 오류: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-upload_O_O_O_O__NowDataErroriOS-ul-enum} |
[표 31. 매개변수]

{#NAttServiOS-upload_O_O_O_O__table_n5z_mpx_spb} {#NAttServiOS-upload_O_O_O_O__table_o5z_mpx_spb__entry__2}

| 유형 | 설명 |
|-|-|
| 없음 |   |
[표 32. 반환]

{#NAttServiOS-upload_O_O_O_O__table_o5z_mpx_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    typealias ProgressUpdate = (_ bytesWritten: Int64, _ totalBytesWritten: Int64, _ totalBytesExpectedToWrite: Int64) -> Void

    let image = UIImage(named: "photo.png") 
    let data = image.pngData() 
    let recordSysId = "" // Sys_id of the record on the SN instance

    let config = NowAttachmentUploadConfiguration(
      tableName: "tableName", 
      recordSysId: recordSysId, 
      fileName: "photo.png",
      contentType: "image/png",
      encryptionContext: nil)

    private func uploadFile(
      data: Data,
      config: NowAttachmentUploadConfiguration,
      progress: @escaping ProgressUpdate) {
        attachmentService.upload(data: data, configuration: config, progressUpdate: progress) { (result) in
          DispatchQueue.main.async { [weak self] in
            switch result {
              case .success(let response)
                do {
                  let data = try JSONEncoder().encode(response)
                    // Upload file successfully, return data
                } catch
                    // Upload file decode failed, return error
                }
              case .failure(let error):
                    // Upload file failed, return NowDataError
          }
        }
      }

## NowAttachmentService - upload(data: Data, configuration: NowAttachmentUploadConfiguration, progressUpdate: @escaping ProgressUpdate) {#ariaid-title18}

첨부 파일 데이터를 업로드하고 업로드 구성에 지정된 대로 테이블의 기록에 첨부합니다.
ProgressUpdate 콜백은 UI 피드백을 제공하는 데 사용할 수 있는 업로드 진행률 정보를 제공합니다.  
주:  
이 방법은 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
{#NAttServiOS-upload_O_O_O__table_ptn_lnx_spb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 데이터 | 데이터 | 업로드할 첨부 파일입니다. 업로드할 수 있는 첨부 파일의 데이터 크기와 유형은 인스턴스에서 제어합니다 ServiceNow . |
| 구성 | [NowAttachmentUploadConfiguration](https://servicenow-prod.fluidtopics.net/t8XclPycCPA9a~_gsywHWQ#NowAttachUploadConfigiOSStruct "NowAttachmentUploadConfiguration 구조를 사용하면 인스턴스에 업로드하는 첨부 파일에 대한 구성 정보를 정의할 수 있습니다ServiceNow.") | 다음과 같이 첨부 파일에 대한 업로드 매개변수를 정의하는 구성 정보입니다. * 파일을 첨부할 테이블 및 기록 * 첨부 파일 이름 * 첨부 파일 유형 * 파일이 암호화되었는지 여부 |
| 진행률 업데이트 | @escaping ProgressUpdate | 첨부 파일을 검색한 후 실행할 완성 핸들러입니다. 완성 핸들러에 대한 반환 값: ProgressUpdate - 업로드의 현재 진행률을 반환합니다. 업로드 프로세스가 완료될 때까지 여러 번 호출됩니다. `ProgressUpdate = (_bytesWritten: Int64, _totalBytesWritten: Int64, _totalBytesExpectedToWrite: Int64) -> Void` |
[표 33. 매개변수]

{#NAttServiOS-upload_O_O_O__table_ptn_lnx_spb} {#NAttServiOS-upload_O_O_O__table_qtn_lnx_spb__entry__2}

| 유형 | 설명 |
|-|-|
| AnyPublisher\<[NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/fYOGxhJ16scyOTN~FAELvg#NowAttachmentMetadataiOSStructure "NowAttachmentMetadata 구조체는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 기능을 제공합니다."), NowDataError\> | 성공: [NowAttachmentMetadata](https://servicenow-prod.fluidtopics.net/fYOGxhJ16scyOTN~FAELvg#NowAttachmentMetadataiOSStructure "NowAttachmentMetadata 구조체는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 기능을 제공합니다.") - 요청된 첨부 파일에 대한 메타데이터를 포함하는 객체입니다. 실패: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: 액세스 토큰 제공자의 오류 코드 또는 메시지입니다. * accessTokenRetrievalFailed * userSessionError(_ error: Error) 접근 토큰에 오류가 있을 때 발생합니다. * `첨부 확인` 첨부 파일이 확인에 실패할 때 발생합니다. * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: 인스턴스에서 받은 상태 코드입니다. 요청에서 예기치 않은 응답을 반환할 때 발생 * `cannotDecodeModel(DecodingError)` * DecodingError: 디코딩 오류가 탐지되었습니다. 코드화 가능한 모델을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotDecodeProperty(type: Any, from: String)` * type: 문자열에서 디코딩할 래핑된 유형입니다. * from: 지정된 유형으로 디코딩할 문자열입니다. 문자열로 래핑된 값을 JSON에서 디코딩할 수 없을 때 발생합니다. * `cannotEncodeModel(EncodingError)` * EncodingError: 인코딩 오류가 탐지되었습니다. 코드 가능한 모델을 JSON으로 인코딩할 수 없는 경우 발생합니다. * `cannotParse응답` 인스턴스의 응답을 예상 형식으로 구문 분석할 수 없을 때 발생합니다. * `잘못된 URL` URL을 구성할 수 없을 때 발생합니다. 예를 들어 문자열에 URL에서 잘못된 문자가 포함되어 있거나 빈 문자열인 경우입니다. * `missingAttachmentMetadata` 첨부 파일 메타데이터 헤더가 누락되었을 때 발생 * `missingServiceConfiguration` 예상 서비스 구성이 누락될 때 발생합니다. * `MissingSysID` 예상 sys_id 매개변수가 누락되었을 때 발생합니다. * `네트워크(NetworkServiceError)` * genericError(문자열) * operationCanceled * serviceDisabled * serverError(오류) * systemError(오류) 네트워크 서비스에 오류가 발생할 때 발생합니다. {#NAttServiOS-upload_O_O_O__NowDataErroriOS-ul-enum} |
[표 34. 반환]

{#NAttServiOS-upload_O_O_O__table_qtn_lnx_spb}  
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    typealias ProgressUpdate = (_ bytesWritten: Int64, _ totalBytesWritten: Int64, _ totalBytesExpectedToWrite: Int64) -> Void

    let image = UIImage(named: "photo.png") 
    let data = image.pngData() 
    let recordSysId = "" // Sys_id of the record on the SN instance
    let config = NowAttachmentUploadConfiguration(
      tableName: "tableName", 
      recordSysId: recordSysId, 
      fileName: "photo.png",
      contentType: "image/png", 
      encryptionContext: nil)

    private func uploadFile(data: Data,
      config: NowAttachmentUploadConfiguration,
      progress: @escaping ProgressUpdate) {
        let publisher = attachmentService.upload(data: data, configuration: config, progressUpdate: progress)

        publisher
          .receive(on: DispatchQueue.main)
          .encode(encoder: JSONEncoder())
          .sink { [weak self] completion in
            if case let .failure(error) = completion {
              // Upload file failed, return NowDataError
            }
          } receiveValue: { [weak self] (data) in
            // Upload file successfully, return data
          }
          .store(in: &subscriptions)
      }


