> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Title Storage에서 blob 다운로드

> 버퍼 크기 조정 및 블록 크기 지침과 함께 XblTitleStorageDownloadBlobAsync를 사용하여 XBOX services Title Storage에서 blob을 다운로드하기 위한 flat C 코드 샘플입니다.

이 항목에서는 다음 flat C 코드 예제를 사용하여 XBOX services Title Storage에서 blob을 다운로드하는 방법을 보여줍니다.

## XblTitleStorageDownloadBlobAsync 매개변수에 대한 참고 사항

* 다운로드한 blob 데이터를 저장하기 위해 제공하는 버퍼는 다운로드되는 blob을 저장할 수 있을 만큼 커야 합니다. 필요한 경우 blob 메타데이터를 가져와서 버퍼에 필요한 길이를 검색할 수 있습니다.

* 이 API는 `blobBuffer`에 blob 데이터를 담을 용량이 충분하지 않으면 E\_NOT\_SUFFICIENT\_BUFFER(0x8007007A)를 반환합니다.

* 기본 크기를 사용하려면 `preferredDownloadBlockSize`에 0을 전달합니다.

#### Flat C

```cpp theme={null}
std::unique_ptr<std::vector<uint8_t>> downloadBlobBuffer = std::make_unique<std::vector<uint8_t>>(blobMetadata.length);

auto asyncBlock = std::make_unique<XAsyncBlock>();
asyncBlock->queue = queue;
asyncBlock->context = downloadBlobBuffer.get();
asyncBlock->callback = [](XAsyncBlock* asyncBlock)
{
    std::unique_ptr<XAsyncBlock> asyncBlockPtr{ asyncBlock };   // Take over ownership of XAsyncBlock*.
    std::unique_ptr<std::vector<uint8_t>> downloadBlobBuffer{ static_cast<std::vector<uint8_t>*>(asyncBlock->context) };
    HRESULT hr = XblTitleStorageDownloadBlobResult(asyncBlock, &blobMetadata);
};

HRESULT hr = XblTitleStorageDownloadBlobAsync(
    xboxLiveContext,
    blobMetadata,
    downloadBlobBuffer->data(),
    blobMetadata.length,
    XblTitleStorageETagMatchCondition::NotUsed,
    selectQuery.c_str(),   // Optional  .
    preferredDownloadBlockSize,   // Optional.
    asyncBlock.get()
);

if (SUCCEEDED(hr))
{
    // The call succeeded, so release std::unique_ptr ownership of XAsyncBlock* because
    // the callback takes over ownership. If the call fails, however, std::unique_ptr keeps
    // ownership and deletes XAsyncBlock*.
    asyncBlock.release();
    downloadBlobBuffer.release();
}
```

## 참고 항목

[XAsyncBlock](/reference/system/xasync/structs/xasyncblock)

[XblTitleStorageDownloadBlobAsync](/reference/live/xsapi-c/title_storage_c/functions/xbltitlestoragedownloadblobasync)

[XblTitleStorageDownloadBlobResult](/reference/live/xsapi-c/title_storage_c/functions/xbltitlestoragedownloadblobresult)

[XblTitleStorageETagMatchCondition](/reference/live/xsapi-c/title_storage_c/enums/xbltitlestorageetagmatchcondition)


## Related topics

- [Partner Center에서 Events Manifest 파일 다운로드](/ko/publishing/game-publishing/how-to/data-platform-2013/how-to-download-events-manifest.md)
- [Title Storage에서 blob 삭제](/ko/services/xbox-services/storage/title-storage/how-to/live-deleting-title-storage-blob.md)
- [XblTitleStorageDownloadBlobAsync](/ko/reference/live/xsapi-c/title_storage_c/functions/xbltitlestoragedownloadblobasync.md)
- [방법 안내](/ko/services/xbox-services/storage/title-storage/how-to/index.md)
- [XblTitleStorageDownloadBlobResult](/ko/reference/live/xsapi-c/title_storage_c/functions/xbltitlestoragedownloadblobresult.md)
