A share link from s3d only opened where s3d is reachable, which on a default setup is this computer. Pithos now makes a Sia shared-object URL for the file the way the Sia SDK does (the indexer's sealed object, its data key opened with a key derived from s3d's app key) and registers it at navigate.st, which streams the file from Sia hosts for anyone, with seeking, even with this computer off. A shared-object URL reads that one object and nothing else in the account. Files still waiting on this computer are uploaded first. A folder gets a page with its files and a player. Settings lists the links, each one can be switched off. sia-share is the navigate.st side, in Go on the Sia SDK: it keeps short ids, checks every URL against an allowed indexer, serves files sandboxed so a shared page cannot run script on navigate.st, and caps sign-ups per address and downloads per link per day. Host reads are paid by its own app on Silent Mode's indexer account.
33 lines
1.2 KiB
Modula-2
33 lines
1.2 KiB
Modula-2
module code.silentmode.st/silentmode/pithos/sia-share
|
|
|
|
go 1.27.1
|
|
|
|
require (
|
|
go.sia.tech/core v0.21.7
|
|
go.sia.tech/siastorage v0.2.2-0.20260831091740-f9961f7e5391
|
|
go.uber.org/zap v1.28.0
|
|
)
|
|
|
|
require (
|
|
github.com/dunglas/httpsfv v1.1.0 // indirect
|
|
github.com/julienschmidt/httprouter v1.3.0 // indirect
|
|
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
|
|
github.com/klauspost/reedsolomon v1.14.2 // indirect
|
|
github.com/oschwald/geoip2-golang v1.13.0 // indirect
|
|
github.com/oschwald/maxminddb-golang v1.13.1 // indirect
|
|
github.com/quic-go/qpack v0.6.0 // indirect
|
|
github.com/quic-go/quic-go v0.61.0 // indirect
|
|
github.com/quic-go/webtransport-go v0.12.0 // indirect
|
|
go.sia.tech/coreutils v0.24.0 // indirect
|
|
go.sia.tech/indexd v0.4.5-0.20260831084636-eb58007edc01 // indirect
|
|
go.sia.tech/jape v0.14.1 // indirect
|
|
go.sia.tech/mux v1.5.3 // indirect
|
|
go.uber.org/multierr v1.11.0 // indirect
|
|
golang.org/x/crypto v0.55.0 // indirect
|
|
golang.org/x/net v0.57.0 // indirect
|
|
golang.org/x/sys v0.47.0 // indirect
|
|
golang.org/x/text v0.41.0 // indirect
|
|
golang.org/x/time v0.15.0 // indirect
|
|
golang.org/x/tools v0.48.0 // indirect
|
|
lukechampine.com/frand v1.5.1 // indirect
|
|
)
|