Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
nanafshiを使って簡単に作るFUSEの動的ファイル
Search
Ryotaro Tamura
February 12, 2019
Programming
620
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
nanafshiを使って簡単に作るFUSEの動的ファイル
Ryotaro Tamura
February 12, 2019
More Decks by Ryotaro Tamura
See All by Ryotaro Tamura
BlockNoteとDuckDB-WASMでつくる、ブラウザ内データ分析環境の設計
tokibi
0
150
Prometheus setup with long term storage
tokibi
7
6.1k
monotips #3 - fzfる
tokibi
0
180
IAMロールはどこから来て、どこへ行くのか / Where do IAM rolls come from and where to go?
tokibi
2
2.7k
Other Decks in Programming
See All in Programming
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
パーソナライズPodcastを作った話
repunit11
0
120
CodeRabbitの効果検証と過ごしてみた3ヶ月
armondando
0
150
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
110
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
14
6.7k
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.8k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.1k
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
310
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
190
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
390
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
550
JRuby: Past, Present, and Future
headius
0
220
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
530
Unsuck your backbone
ammeep
672
58k
Odyssey Design
rkendrick25
PRO
2
860
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
770
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
450
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
It's Worth the Effort
3n
188
29k
Transcript
ాଜཾଠ(.01FQBCP *OD 'VLVPLBHP 0LBZBNBHP OBOBGTIJΛͬͯ؆୯ʹ࡞Δ '64&ͷಈతϑΝΠϧ
ΤϯδχΞ ాଜཾଠ!@UPLJCJ ϗεςΟϯάࣄۀ෦ϗεςΟϯάάϧʔϓϚωʔδυΫϥυνʔϜ
.PUJWBUJPO
ಈతʹத͕มΘΔ ϑΝΠϧΛ࡞Γ͍ͨ
Πϝʔδ
༻్ wϛυϧΣΞͷઃఆϑΝΠϧΛੜ wൿີ伴ͷΑ͏ͳϑΝΠϧͰ͋Δ͜ͱΛཁٻ͞ΕΔೝূใΛऔಘ wϩάσʔλΛσΟεΫͰͳ͘֎෦ͷετΞʹอଘ
ྫCBTI@IJTUPSZ wCBTI@IJTUPSZΛ֎෦ͷετΞʹอଘ͢Δ
ίϚϯυ ৼΔ͍ Λ ϑΝΠϧʹٖଶͤ͞Δͱ৭ʑͰ͖ͦ͏
"QQSPBDI
'64& 'JMFTZTUFNJO6TFSTQBDF wϢʔβ্ۭؒͰϑΝΠϧγεςϜ Λ࡞͢ΔΈ wEFWGVTFΛհͯ͠Χʔωϧۭ ؒͱϢʔβۭؒͷؒͰϑΝΠϧ ͷΞΫηεཁٻΛΓऔΓ͢Δ w'64&σʔϞϯड͚औͬͨϦΫ ΤετΛॲཧͯ͠Χʔωϧۭؒʹ ฦ͢
Ҿ༻ݩIUUQTKBXJLJQFEJBPSHXJLJ'JMFTZTUFN@JO@6TFSTQBDF
ϥΠϒϥϦ͋Δ͠ ؆୯ʹͰ͖ΔͷͰ
࣮ wHJUIVCDPNIBOXFOHPGVTFΛ༻ wTBNQMF͕๛Ͱཧղ͍͢͠ wJOPEFϕʔεͰॲཧΛఆٛ͢ΔOPEFGTͱɺϑΝΠϧύεϕʔεͰॲཧ Λఆٛ͢ΔQBUIGTͷछྨͷ࣮ํ๏͕͋Δ wࠓճJOPEFΛಓʹ࡞͍ͯ͘͠OPEFGTΛબ
࣮Πϝʔδ
͑
શવ؆୯ ͡Όͳ͍
1SPCMFN
ෳࡶ͞ͷݪҼ wσΟϨΫτϦϑΝΠϧͷΞΫηε࣌ʹԿͷγεςϜίʔϧ͕ൃߦ ͞ΕͯɺͲͷΑ͏ͳใΛඞཁͱ͢Δͷ͔Ѳ͍ͯ͠ͳ͍ͱ͍͚ͳ͍ ϨΠϠΊ wγεςϜίʔϧͷର͕JOPEFͳͷ͔ɺJOPEFΛPQFOͨ࣌͠ʹੜ ͞ΕΔ'JMFߏମͳͷ͔ͰৼΔ͍Λม͑Δඞཁ͕͋Δ wEFOUSZϖʔδΩϟογϡͷڍಈΛΒͳ͍ͱɺࢥͬͨΑ͏ʹಈ͔ ͳ͍͕࣌͋Δ ಈ͔ͳ͔ͬͨ
Γ͍ͨ͜ͱ
ϑΝΠϧʹΞΫηεͨ͠Β ͍͍ײ͡ͰίϚϯυΛ࣮ߦͯ͠΄͍͠
1SPQPTBM
HJUIVCDPNUPLJCJOBOBGTIJ
OBOBGTIJ wత w'64&৭ʑͰָ͖ͯͦ͠͏͚ͩͲ࣮େม wͬͱΧδϡΞϧʹ'64&ͰಈతͳϑΝΠϧΛ࡞Γ͍ͨ wඞཁͱ͢Δલఏࣝ γεςϜίʔϧͳͲ ΛͰ͖Δ͚ͩগͳ͍ͨ͘͠ wΓ͍ͨ͜ͱ͕มΘΔʹɺίʔυΛॻ͍ͯϏϧυͯ͠όΠφϦΛ ࠶͢ΔखؒΛແ͍ͨ͘͠
OBOBGTIJ wZBNMͰσΟϨΫτϦͷߏͱϑΝΠϧΞΫηε࣌ͷৼΔ͍Λఆٛ wࢦఆͨ͠γΣϧͰఆٛ͞ΕͨίϚϯυΛ࣮ߦ͢Δ wεΫϦϓτͰόΠφϦͰԿͰ wϑΝΠϧΞΫηε࣌ʹϓϩηε͔Β͖ͬͯͨใΛίϚϯυ࣮ߦ࣌ ʹڥมͱͯ͠ઃఆ͢Δ
ઃఆྫ shell: /bin/bash services: - name: dir files: - name:
now read: command: date - name: writable write: async: true command: echo $FUSE_STDIN >> /tmp/file
ಈ࡞ྫ $ nanafshi -c config.yml /mnt/nanafshi $ tree /mnt/nanafshi /mnt/nanafshi
└── dir ├── now └── writable $ cat /mnt/nanafshi/dir/now Tue Feb 12 14:53:56 JST 2019
Ґஔ͚
࣮ྫ func (n CommandFile) Open(flags uint32, ctx *fuse.Context) (nodefs.File, fuse.Status)
{ if flags&fuse.O_ANYWRITE != 0 { return nodefs.NewDevNullFile(), fuse.OK } p, err := n.ReadFile(ctx) if err != nil { return nil, fuse.EIO } return &nodefs.WithFlags{ File: nodefs.NewDataFile(p), FuseFlags: fuse.FOPEN_DIRECT_IO, }, fuse.OK } wJOPEFͷૢ࡞ΛJOUFSGBDFͱͯ͠ఆٛͯ͘͠ΕͯΔͷͰͦΕΛຬͨ͢
࣮ྫ func (n CommandFile) ReadFile(ctx *fuse.Context) ([]byte, error) { cmd,
err := n.ReadCommand.Command.Build(conf.Shell, n.makeEnv(ctx)) if err != nil { return nil, err } out, err := cmd.Output() if err != nil { return nil, err } return out, nil } w'JMFTZTUFNͷίΞ࣮
ۤ࿑ͨ͠ͱ͜Ζ wEFOUSZͱ͔ϖʔδΩϟογϡͷษڧ w7'4ʹର͢ΔΠϯλʔϑΣʔεͷ࣮ JOPEFPQFSBUJPOT ͱɺϑΝΠ ϧγεςϜͱͯ͠ԿΛ͍ͨ͠ͷ͔Λ࣮͢Δ෦Λͤ͞ͳ͍ͱɺ ࠞಱͱͯ͘͠Δ w͕ࣗJOPEFΛ࡞͍ͬͯΔͷ͔'JMFߏମΛ࡞͍ͬͯΔͷ͔Θ͔Βͳ ͘ͳͬͯ͘Δ
࣮ͷϙΠϯτ
·ͱΊ w'64&৭ʑͰ͖ͦ͏Ͱເ͕͕Δ w࣮͕େมͰΔؾ͕Ͱͳ͔ͬͨํOBOBGTIJͰ࣮ݧͯ͠ΈͯԼ͍͞ wOBOBGTIJ͕ཪͰίϚϯυΛ࣮ߦ ผϓϩηε͕ىಈ ͢ΔͷͰएׯͷ Φʔόʔϔου͕͋Γ·͢ w໘ന͍͍ํ͕͋ͬͨΒڭ͑ͯԼ͍͞