UploadOperation Class

비동기 업로드 작업을 수행합니다. 백그라운드 전송 기능에 대한 개요는 백그라운드에서 데이터 전송을 참조하십시오. JavaScript, C# 및 C++의 예는 백그라운드 전송 샘플을 다운로드하십시오.

구문


var uploadOperation = promise.operation;

특성

[MarshalingBehavior(Agile)]
[Version(0x06020000)]

멤버

UploadOperation클래스에는 다음과 같은 형식의 멤버가 있습니다.

메서드

The UploadOperation 클래스 - 이러한 메서드가 있습니다. C#, Visual Basic 및 C++에서는 다음 위치의 메서드도 상속합니다. Object 클래스.

메서드Description
AttachAsync Returns an asynchronous operation that can be used to monitor progress and completion of the attached upload. Calling this method allows an app to attach upload operations that were started in a previous app instance.
GetResponseInformation Gets the response information.
GetResultStreamAt Gets the partially uploaded response at the specified location.
StartAsync Starts an asynchronous upload operation.

 

속성

UploadOperation클래스 - 이러한 속성이 있습니다.

속성사용 권한Description

CostPolicy

읽기/쓰기Gets and sets the cost policy for the upload.

Group

읽기 전용Gets a string value indicating the group the upload belongs to.

Guid

읽기 전용This is a unique identifier for a specific upload operation. A GUID associated to a upload operation will not change for the duration of the upload.

Method

읽기 전용Gets the method to use for the upload.

Priority

읽기/쓰기Gets or sets the transfer priority of this upload operation when within a BackgroundTransferGroup. Possible values are defined by BackgroundTransferPriority.

Progress

읽기 전용Gets the current progress of the upload operation.

RequestedUri

읽기 전용Gets the URI to upload from.

SourceFile

읽기 전용Specifies the IStorageFile to upload.

TransferGroup

읽기 전용Gets the group that this upload operation belongs to.

 

설명

앱 종료 후 앱은 다음 시작 시에 GetCurrentUploadsAsync를 사용하여 모든 기존 UploadOperation 인스턴스를 열거해야 합니다. 백그라운드 전송을 사용하여 Windows 스토어 앱을 종료하면 불완전한 업로드가 백그라운드에서 유지됩니다. 종료 후 앱이 다시 시작되고, 완료되지 않은 이러한 작업이 열거되지 않으며 현재 세션에 다시 들어가지 않을 경우 상태가 나빠지고 장치 리소스를 계속 차지합니다.

Timeout considerations

1.) TCP/SSL을 통한 업로드에 대한 새 연결을 설정할 때 5분 안에 설정하지 않으면 연결 시도가 중단됩니다.

2.) 연결이 설정된 후 2분 내에 응답을 받지 못한 HTTP 요청 메시지는 중단됩니다.

백그라운드 전송은 인터넷이 연결되었다고 가정하고 최대 세 번까지 업로드를 재시도합니다. 인터넷 연결이 감지되지 않는 경우 인터넷 연결이 될 때까지 추가로 시도되지 않습니다.

Debugging Guidance

Microsoft Visual Studio의 디버깅 세션 중지는 앱을 닫을 때와 비슷합니다. 즉, PUT 업로드가 일시 중지되고 POST 업로드가 중단됩니다. 디버깅하는 중에도 앱은 계속 유지된 업로드를 열거한 다음 일시 중지, 다시 시작 또는 취소해야 합니다.

하지만 앱 매니페스트 변경과 같은 Visual Studio 프로젝트 업데이트 시 디버깅하기 위해 앱을 제거하고 다시 배포해야 할 경우 GetCurrentUploadsAsync는 이전 앱 배포를 통해 만든 지속된 작업을 열거할 수 없습니다.

예제

다음 예제에서는 Windows 샘플 갤러리에 제공된 백그라운드 전송 샘플에 기반을 두 기본 업로드 작업을 구성 및 시작하는 방법을 보여 줍니다.


        var upload = null;
        var promise = null;

        function UploadFile (uriString, file) {
            try {

                var uri = Windows.Foundation.Uri(uriString);
                var uploader = new Windows.Networking.BackgroundTransfer.BackgroundUploader();

                // Set a header, so the server can save the file (this is specific to the sample server).
                uploader.setRequestHeader("Filename", file.name);

                // Create a new upload operation.
                upload = uploader.createUpload(uri, file);

                // Start the upload and persist the promise to be able to cancel the upload.
                promise = upload.startAsync().then(complete, error, progress);
            } catch (err) {
                displayError(err);
            }
        };

요구 사항

지원되는 최소 클라이언트

Windows 8 [Windows 스토어 앱만]

지원되는 최소 서버

Windows Server 2012 [Windows 스토어 앱만]

Namespace

Windows.Networking.BackgroundTransfer
Windows::Networking::BackgroundTransfer [C++]

Metadata

Windows.winmd

Capabilities

internetClient
internetClientServer
privateNetworkClientServer

참고 항목

빠른 시작: 파일 업로드
백그라운드 전송 샘플

 

 

표시:
© 2014 Microsoft