다음을 통해 공유


클라우드 스토리지 공급자 통합

클라우드 스토리지 공급자가 있는 경우 사용자에게 일관되고 선호하는 환경을 제공하기 위해 수행해야 하는 몇 가지 단계가 있습니다. 이 두 가지는 동기화 루트 공급자로 등록하고 애플리케이션을 탐색 창의 루트 수준에 통합하는 것입니다.

중요

클라우드 스토리지 공급자 통합은 Windows 10 시작해서만 지원됩니다.

 

첫 번째는 동기화 루트 공급자로 등록하는 것입니다. 이렇게 하면 Windows Shell에서 애플리케이션에 대해 알 수 있으며 애플리케이션이 동기화 루트에서 파일을 동기화할 책임이 있음을 알 수 있습니다. 이렇게 하면 다른 애플리케이션에서 이러한 파일이 적절하게 응답할 수 있도록 이러한 파일을 동기화하고 있음을 알 수 있습니다. 그런 다음 다른 애플리케이션은 StorageFile.Provider 를 사용하여 애플리케이션의 DisplayNameID 를 가져올 수 있습니다.

동기화 루트 공급자로 등록하려면 여러 레지스트리 항목을 만들어야 합니다. 키-값 쌍 목록을 제공하기 전에 사용자 고유의 애플리케이션 데이터로 바꿔야 하는 몇 가지 자리 표시자는 다음과 같습니다.

  • [스토리지 공급자 ID]: 클라우드 스토리지 공급자의 이름입니다. 이 이름은 애플리케이션 버전에 관계없이 일관되어야 합니다. 이 예제는 OneDrive입니다.
  • [Windows SID]: 사용자를 식별하는 고유한 Windows SID입니다. 앱이 단일 컴퓨터에서 여러 사용자에 대해 여러 설치를 지원하는 경우 이 부분이 필요합니다.
  • [계정 ID]: 이 사용자의 현재 계정에 대한 서비스 공급자 식별자입니다. 일부 공급자는 사용자에게 여러 동기화 루트를 제공하는 기능이 필요합니다. 이 예제의 한 가지 예는 작업 및 개인 계정. 계정 ID를 사용하면 한 사용자에 대해 여러 계정을 등록할 수 있습니다. 공급자가 사용자당 여러 동기화 루트를 지원하는 경우 이 부분이 필요합니다.

이러한 자리 표시자는 동기화 루트 ID를 형성하기 위해 함께 결합됩니다. 동기화 루트 ID를 구성할 때 각 자리 표시자 사이에 ! 문자를 배치해야 합니다. 생성해야 하는 키-값 쌍은 다음과 같습니다.

  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[스토리지 공급자 ID]![Windows SID]![계정 ID]\DisplayNameResource : Windows Shell 또는 다른 애플리케이션이 동기화 루트에 대한 사용자에게 친숙한 이름을 가져올 수 있는 리소스를 가리킵니다.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[스토리지 공급자 ID]![Windows SID]![계정 ID]\IconResource : Windows 셸 또는 다른 애플리케이션이 동기화 루트에 대한 아이콘을 가져올 수 있는 리소스를 가리킵니다.
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SyncRootManager\[스토리지 공급자 ID]![Windows SID]![계정 ID]\UserSyncRoots\[Windows SID] : 동기화 루트가 있는 디스크의 위치입니다.

동기화 루트 공급자로 등록하는 것 외에도 사용자가 제공하는 데이터에 쉽게 액세스할 수 있도록 합니다. 파일 탐색기 네임스페이스는 쉽게 액세스할 수 있는 메서드를 제공하도록 설계되었습니다. 공급자에 대한 네임스페이스 확장을 만들고 파일 탐색기 창에 통합하면 사용자가 다른 파일 탐색기 항목과 마찬가지로 서비스의 루트 수준과 상호 작용할 수 있습니다. 이 항목에서는 공급자가 탐색 창의 루트 수준에 표시되도록 파일 탐색기 네임스페이스를 확장하는 방법을 설명합니다.

파일 탐색기 창의 탐색 창은 왼쪽에 표시되는 창의 부분입니다. 아래 이미지에서는 이 사용자의 네임스페이스 구조를 볼 수 있습니다. 탐색 창의 루트 수준에는 OneDrive, 이 PC네트워크에 대한 개체가 포함됩니다. 다음 단계를 수행하면 동일한 수준에 확장이 추가됩니다.

탐색 창

탐색 창에 확장을 추가하려면 레지스트리를 편집하기 전에 다음이 필요합니다.

  • 사용자에게 표시할 데이터가 포함된 파일 시스템 폴더입니다.

  • 탐색 창에 표시되는 클라우드 서비스의 이름입니다. 서비스에서 여러 계정을 지원하는 경우 instance 이름일 수도 있습니다.

  • 애플리케이션에 대한 식별 가능한 아이콘입니다.

  • 애플리케이션에 대한 CLSID입니다. 애플리케이션에 대한 CLSID를 생성하는 한 가지 방법은 Uuidgen.exe 사용하는 것입니다. CLSID에 대한 자세한 내용은 CLSID 키를 참조하세요.

다음 단계에서는 필요한 정보를 파일 탐색기 네임스페이스로 가져오기 위해 레지스트리를 수정합니다. 특정 단계는 세 가지 작업을 수행합니다.

  • 확장의 이름 및 아이콘 값과 해당 동작을 정의하는 기타 정보가 포함된 CLSID에 대한 레지스트리에 키를 만듭니다.

  • 적절한 위치와 적절한 표시 유형으로 탐색 창에 통합되도록 확장을 구성합니다.

  • 탐색 창에서 요소에 대해 예상되는 동작을 갖도록 확장을 구성합니다.

이러한 지침은 특히 reg.exe 명령을 사용하므로 원하는 레지스트리 편집 도구를 사용할 수 있습니다. 이러한 단계를 프로그래밍 방식으로 레지스트리를 업데이트하는 설치 관리자에 통합할 수도 있습니다.

지침

1단계: CLSID 추가 및 확장 이름 지정

HKEY_CURRENT_USER 아래의 레지스트리에 확장 이름을 추가합니다. 또한 이 확장에 대한 고유 식별자를 추가합니다. 사용자당 둘 이상의 확장을 추가할 수 있지만, 이 경우 각 확장에 대해 고유한 이름과 식별자가 필요합니다. 이 이름과 식별자는 이러한 단계의 나머지 부분 전체에서 일관되어야 합니다. 이 예제에서 이름은 MyCloudStorageApp입니다.

중요

이러한 단계에서 제공된 식별자(0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3)는 샘플로만 사용됩니다. 이를 고유한 CLSID로 변경해야 합니다.

 

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /ve /t REG_SZ /d "MyCloudStorageApp" /f

2단계: 아이콘에 대한 이미지 설정

탐색 창에 표시되어야 하는 아이콘의 경로를 제공합니다. 아래 예제에서 1043 은 표시된 DLL의 아이콘에 대한 리소스 식별자를 참조합니다.

중요

이미지 경로를 업데이트해야 합니다. 앱이 이미지를 설치한 일반 경로를 가리킵니다.

 

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\DefaultIcon /ve /t REG_EXPAND_SZ /d %%SystemRoot%%\system32\imageres.dll,-1043 /f

3단계: 탐색 창에 확장 추가 및 표시

이 값을 0x1 설정하면 확장이 고정되어야 합니다. 이렇게 하면 기본적으로 사용자에게 표시됩니다. 사용자의 기본 구성은 고정된 항목만 탐색 창에 표시된다는 것입니다. 사용자는 탐색 창을 마우스 오른쪽 단추로 클릭하고 모든 폴더 표시를 선택하여 해당 설정을 변경할 수 있습니다. 확장을 고정하지 않으려면 이 값을 0x0 설정할 수 있습니다. 그러면 확장이 제거되지 않고 기본적으로 사용자에게 표시되지 않습니다.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /v System.IsPinnedToNameSpaceTree /t REG_DWORD /d 0x1 /f

4단계: 탐색 창에서 확장의 위치 설정

이는 탐색 창이 사용자에게 일관된 환경을 제공하는지 확인하는 데 중요합니다.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /v SortOrderIndex /t REG_DWORD /d 0x42 /f

5단계: 확장을 호스트하는 dll을 제공합니다.

shell32.dll 사용하여 기본 Windows 폴더를 에뮬레이트합니다. 특정 이유가 있고 네임스페이스 확장에 익숙한 경우에만 변경합니다.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\InProcServer32 /ve /t REG_EXPAND_SZ /d %%systemroot%%\system32\shell32.dll /f

6단계: instance 개체 정의

네임스페이스 확장이 파일 탐색기 다른 파일 폴더 구조와 같이 작동해야 함을 나타냅니다. 셸 instance 개체에 대한 자세한 내용은 셸 인스턴스 개체를 사용하여 셸 확장 만들기를 참조하세요.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\Instance /v CLSID /t REG_SZ /d {0E5AAE11-A475-4c5b-AB00-C66DE400274E} /f

7단계: 대상 폴더의 파일 시스템 특성 제공

이는 파일 탐색기 사용자에게 일관되고 예상되는 환경을 제공하는지 확인하는 데 필요합니다. 이 명령은 파일특성 상수FILE_ATTRIBUTE_DIRECTORY 및 FILE_ATTRIBUTE_READONLY 설정합니다.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\Instance\InitPropertyBag /v Attributes /t REG_DWORD /d 0x11 /f

8단계: 동기화 루트의 경로 설정

동기화 루트의 경로를 설정합니다.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\Instance\InitPropertyBag /v TargetFolderPath /t REG_EXPAND_SZ /d %%USERPROFILE%\MyCloudStorageApp /f

9단계: 적절한 셸 플래그 설정

네임스페이스 확장을 파일 탐색기 트리에 고정하는 데 필요한 일부 플래그를 설정합니다.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\ShellFolder /v FolderValueFlags /t REG_DWORD /d 0x28 /f

10단계: 셸 동작을 제어하는 적절한 플래그 설정

적절한 SFGAO 플래그를 설정합니다. 관련 플래그는 SFGAO_CANCOPY, SFGAO_CANLINK, SFGAO_STORAGE, SFGAO_HASPROPSHEET, SFGAO_STORAGEANCESTOR, SFGAO_FILESYSANCESTOR, SFGAO_FOLDER, SFGAO_FILESYSTEM 및 SFGAO_HASSUBFOLDER.

reg add HKCU\Software\Classes\CLSID\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3}\ShellFolder /v Attributes /t REG_DWORD /d 0xF080004D /f

11단계: 네임스페이스 루트에 확장 등록

네임스페이스 확장을 데스크톱 폴더의 자식으로 구성합니다.

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /ve /t REG_SZ /d MyCloudStorageApp /f

12단계: 데스크톱에서 확장 숨기기

확장은 파일 탐색기 탐색 창에만 표시되는 것이 중요합니다. 네임스페이스 확장은 일반 바로 가기처럼 작동하지 않습니다. 따라서 이 메서드를 사용하여 바탕 화면 바로 가기를 만들면 안 됩니다.

reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel /v {0672A6D1-A6E0-40FE-AB16-F25BADC6D9E3} /t REG_DWORD /d 0x1 /f