미디어 다운로드
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
재개 가능한 미디어 다운로드는 1 .4.0-beta부터 Google API.NET 클라이언트 라이브러리의 기능이었습니다.
Google API별 라이브러리에는
이 기능을 사용할 수 있습니다.
재개 가능한 미디어 다운로드 프로토콜은
는 예를 들어
Drive API의 미디어 업로드 페이지에서 찾을 수 있습니다.
기본적으로 다룰 주제는
MediaDownloader
이 재개 가능한 미디어 다운로드 구현에서 미디어 콘텐츠는 청크로 다운로드됩니다 (청크 크기는 구성 가능함).
샘플 코드
API별 라이브러리의 메서드에
'supportsMediaDownload
' 매개변수가 있는 경우
이후 Download
및 DownloadAsync
편의 메서드를 사용할 수 있습니다.
이러한 메서드는 미디어 데이터를 Stream
에 다운로드합니다.
객체를 정의합니다. 예를 들면 다음과 같습니다.
{
// Create the service using the client credentials.
var storageService = new StorageService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "APP_NAME_HERE"
});
// Get the client request object for the bucket and desired object.
var getRequest = storageService.Objects.Get("BUCKET_HERE", "OBJECT_HERE");
using (var fileStream = new System.IO.FileStream(
"FILE_PATH_HERE",
System.IO.FileMode.Create,
System.IO.FileAccess.Write))
{
// Add a handler which will be notified on progress changes.
// It will notify on each chunk download and when the
// download is completed or failed.
getRequest.MediaDownloader.ProgressChanged += Download_ProgressChanged;
getRequest.Download(fileStream);
}
}
static void Download_ProgressChanged(IDownloadProgress progress)
{
Console.WriteLine(progress.Status + " " + progress.BytesDownloaded);
}
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-07-26(UTC)
[null,null,["최종 업데이트: 2025-07-26(UTC)"],[[["\u003cp\u003eThe Google API .NET client library supports resumable media download, allowing for the retrieval of large files in manageable chunks.\u003c/p\u003e\n"],["\u003cp\u003eResumable downloads function similarly to resumable uploads, offering a reliable mechanism for handling interruptions during data transfer.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can utilize the \u003ccode\u003eMediaDownloader\u003c/code\u003e class and convenient \u003ccode\u003eDownload\u003c/code\u003e/\u003ccode\u003eDownloadAsync\u003c/code\u003e methods within API-specific libraries to initiate and manage these downloads, providing a stream for the received data.\u003c/p\u003e\n"],["\u003cp\u003eThe download process is configurable, enabling customization of chunk size and progress tracking through events like \u003ccode\u003eProgressChanged\u003c/code\u003e for monitoring the transfer status.\u003c/p\u003e\n"]]],[],null,["# Download Media\n\nResumable media download has been a feature in the Google API .NET client library since 1.4.0-beta.\nThe Google API-specific libraries contain convenience methods for interacting with\nthis feature.\n\n\nThe resumable media download protocol is similar to the resumable media upload protocol which\nis described, for example, on the\n[media upload page for the Drive API](https://developers.google.com/drive/manage-uploads#resumable).\n\n\nThe main class of interest is\n[`MediaDownloader`](https://googleapis.dev/dotnet/Google.Apis/latest/api/Google.Apis.Download.MediaDownloader.html).\nIn this implementation of resumable media download, the media content is downloaded in chunks (chunk size is configurable).\n\nSample Code\n-----------\n\nIf methods in the API-specific libraries contain the \"`supportsMediaDownload`\" parameter in the Discovery document, then the `Download` and `DownloadAsync` convenience methods are available in the request class. Those methods download the media data into a `Stream` object that you provide. For example: \n\n```gdscript\n{\n // Create the service using the client credentials.\n var storageService = new StorageService(new BaseClientService.Initializer()\n {\n HttpClientInitializer = credential,\n ApplicationName = \"APP_NAME_HERE\"\n });\n // Get the client request object for the bucket and desired object.\n var getRequest = storageService.Objects.Get(\"BUCKET_HERE\", \"OBJECT_HERE\");\n using (var fileStream = new System.IO.FileStream(\n \"FILE_PATH_HERE\",\n System.IO.FileMode.Create,\n System.IO.FileAccess.Write))\n {\n // Add a handler which will be notified on progress changes.\n // It will notify on each chunk download and when the\n // download is completed or failed.\n getRequest.MediaDownloader.ProgressChanged += Download_ProgressChanged;\n getRequest.Download(fileStream);\n }\n}\n\nstatic void Download_ProgressChanged(IDownloadProgress progress)\n{\n Console.WriteLine(progress.Status + \" \" + progress.BytesDownloaded);\n}\n```"]]