Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Windows Cloud Files API で遊びたかった
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ssmylh
April 13, 2025
3.1k
0
Share
Windows Cloud Files API で遊びたかった
2025/04/12
鳴子温泉での開発合宿
ssmylh
April 13, 2025
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
Discover your Explorer Soul
emna__ayadi
2
1.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
360
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
450
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
110
First, design no harm
axbom
PRO
2
1.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
240
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Crafting Experiences
bethany
1
110
Building an army of robots
kneath
306
46k
Transcript
Windows Cloud Files API Ͱ༡ͼ͔ͨͬͨ @ssmylh
Cloud Files API ͱ • Windows 10 όʔδϣϯ 1709 (Fall
Creators Update) Ͱಋೖ͞Εͨɻ • Windows Ͱ OneDrive ͷ༷ʹϦϞʔτͷετϨʔδͱϩʔΧϧϑΝΠϧγεςϜΛ ౷߹͢Δҝͷ APIɻ • ϦϞʔτ্ͷϑΝΠϧΛϩʔΧϧϑΝΠϧγεςϜʹγʔϜϨεʹ౷߹͠ɺϩʔ ΧϧϑΝΠϧͷ༷ʹૢ࡞ՄೳʹͳΔɻ
༻ޠͱ͔ (1) • ಉظϧʔτ ◦ ಉظରͷϧʔτɻΤΫεϓϩʔϥͷπϦʔʹදࣔ͞ΕΔɻ • ΫϥυಉظϓϩόΠμʔ ◦ ...
༻ޠͱ͔ (2) • ϓϨʔεϗϧμʔϑΝΠϧ ◦ ϑΝΠϧγεςϜϔομʔʹରͯ͠ 1 KB ͷΈΛফඅ͠ɺ௨ৗͷ༻݅ԼͰ ʮશͳϑΝΠϧʯʹࣗಈతʹϋΠυϨʔτ͢Δɻ
• ϑΝΠϧͷঢ়ଶ ◦ ϓϨʔεϗϧμʔϑΝΠϧ ◦ શͳϑΝΠϧ ◦ ϐϯཹΊ͞ΕͨશͳϑΝΠϧ
API ܊ • Cloud Filter API (Win32 API) ◦ ϢʔβʔϞʔυͱϑΝΠϧγεςϜͷڥքͰػೳ͠ɺϓϨʔεϗϧμʔϑΝ
ΠϧͱσΟϨΫτϦͷ࡞ͱཧΛॲཧɻ • Windows.Storage.Provider (WinRT API) ◦ ಉظϓϩόΠμʔΛߏ͠ɺಉظϧʔτΛOSʹొՄೳɻ
αϙʔτ͞Ε͍ͯΔػೳ • ϓϨʔεϗϧμʔϑΝΠϧ • ඪ४Խ͞Εͨಉظϧʔτͷొ • γΣϧ౷߹ػೳ ◦ ৭ʑ… <-----
ࢼ͔ͨͬͨ͠ͱ͜Ζ
ެࣜαϯϓϧ CloudMirror αϯϓϧ • C++ • ͋ΔϩʔΧϧϑΥϧμʔΛϛϥʔ͢Δɻ • ϦϞʔτͷετϨʔδͱͯ͠ѻ͏ϑΥϧμʔͱಉظϧʔτͯ͠ѻ͏ϑΥϧμʔΛ ొ͢Δɻ
ެࣜαϯϓϧͷҝͷڥߏங • ࢲͷڥ ◦ MacBook Air M2 2022 ͔͜͜Β͕ࠈͷ࢝·Γ…
Windows ڥߏங ҎԼͷཧ༝͔Β UTM Λબ͠ɺɹWindows 11 ԾϚγϯΛߏஙɻ • ແྉ ◦
Parallels Desktop for Mac ༗ྉɻ • Apple γϦίϯରԠ Oracle VirtualBox Windows ະରԠɻ
ެࣜαϯϓϧΛಈ͔͢ (߹॓ͷલ) ಉظϧʔτʹදࣔ͞Εͨ 1ͭͷϑΝΠϧ͕։͚ͨͷͰɺ·͍͍͊ͩΖ͏ͱࢥͬͯ߹॓ʹ Μͩɻ
ެࣜαϯϓϧΛಈ͔͢ (߹॓) ಉظϧʔτʹϑΝΠϧ͕දࣔ͞ΕΔ͕ɺ։͚Δ࣌͋Δ͕ɺ݁ߏͳසͰΤϥʔ͕ग़ Δɻ
σόοά (ྦ) • ରϑΝΠϧͷಡΈऔΓॲཧͷҎԼͷՕॴͰΤϥʔͱͳ͍ͬͯͨɻ ◦ https://github.com/microsoft/Windows-classic-samples/ blob/2b94df5730177ec27e726b60017c01c97ef1a8fb/Samples/CloudMirror/ CloudMirror/FileCopierWithProgress.cpp#L139 • Win32
ͷඇಉظ I/O APIʹͳ͡Έ͕ແ͍ͷͰযΔ…
͠…ʂ • ެࣜαϯϓϧͷରϓϥοτϑΥʔϜ x86 ͚ɻ • ࣗͷ Windows ԾϚγϯ ARM64ɻ
• ެࣜαϯϓϧͷରϓϥοτϑΥʔϜΛ ARM64 ʹͯ͠Ϗϧυ͢Ε…!
ಈ͔ͳ͍ʂ • શ͘ঢ়گ͕มΘΒͣɻ • มΘͬͨͷա͗ڈͬͨ࣌ؒͷΈ… • ઢΛม͑ͯɺCloud Files API Λ༻ͨ͠
C# ͷ OSS (cfapiSync) Λಈ͔ͯ͠Έ Δɻ
ಈ͘ʂ • ͭ·ΓɺެࣜαϯϓϧʹԿ͔͓͔͍͠ͱ͜Ζ͕͋Δʁ • ެࣜαϯϓϧͷඇಉظಡΈऔΓͰ༻͍ͯ͠Δ ֤ API Λௐࠪɻ
͕͓͔͍͜͜͠ʁ • ੈؒͰΑ͋͘Δαϯϓϧ ◦ ReadFile + GetOverlappedResult ◦ ReadFileEx +
ྃϧʔνϯ • ެࣜαϯϓϧ ◦ ReadFileEx + ྃϧʔνϯ + GetOverlappedResult
ಈ͍ͨʂ ެࣜαϯϓϧͷ GetOverlappedResult ͷݺͼग़͠ Λআͨ͠Βಈ͍ͨʂ
Θͨ͠ͷ࣌ؒ ྦɻ
·ͱΊ • ຊ͏গ͠ຊདྷͷಉظΤϯδϯ෦Λ͍ͬͯ͡Έ͔ͨͬͨɻ • Command Ωʔ͕ Windows ΩʔʹׂΓ͋ͨͬͯͨͷͰɺλΠϓϛεසൃɻ Windows ͷ։ൃ
Windows ࣮ػ͕͍͍ͳɻ
ࢀߟ • ϓϨʔεϗϧμʔ ϑΝΠϧΛαϙʔτ͢ΔΫϥυಉظΤϯδϯΛߏங͢Δ • CloudMirror αϯϓϧ • cfapiSync