Ben Marsh
609087ecc0
Horde: Make IStorageClient disposable. StorageService now returns reference-counted proxies for the underlying storage client, preventing errors when rolling over to new instances after the original instance is disposed.
...
[CL 27914992 by Ben Marsh in ue5-main branch]
2023-09-15 10:31:36 -04:00
Ben Marsh
e0f52d9dde
Horde: Enable code style warnings in "Analyze" configuration for Horde.Agent and Horde.Agent.TrayApp, and fix current violations.
...
[CL 27801345 by Ben Marsh in ue5-main branch]
2023-09-12 14:30:37 -04:00
Ben Marsh
0e4f348199
Horde: Move IStorageClient implementations into the EpicGames.Horde.Storage.Clients namespace.
...
[CL 27738432 by Ben Marsh in ue5-main branch]
2023-09-09 10:14:12 -04:00
Ben Marsh
96454d2ea1
Horde: Add helper methods for opening file streams and subdirectories from bundles.
...
[CL 27574082 by Ben Marsh in ue5-main branch]
2023-09-01 20:20:15 -04:00
Ben Marsh
db417ceb75
Horde: Use HTTP range headers for partial object fetches. This works better with redirect URLs, because the parameters are resent to the new location.
...
[CL 27113564 by Ben Marsh in ue5-main branch]
2023-08-15 14:43:49 -04:00
Ben Marsh
3fcf8b606f
Horde: Rename WriteNodeAsync -> WriteRefAsync.
...
[CL 27059555 by Ben Marsh in ue5-main branch]
2023-08-12 10:20:31 -04:00
Ben Marsh
31a83fc628
Horde: Move bundle implementation into a separate namespace.
...
[CL 26226699 by Ben Marsh in ue5-main branch]
2023-06-24 16:37:55 -04:00
Ben Marsh
b7f9afb66a
Horde: Add a custom handle type for nodes stored in bundles, abstracting implementation details away from most clients.
...
[CL 26226673 by Ben Marsh in ue5-main branch]
2023-06-24 16:22:48 -04:00
Ben Marsh
db2e9baf50
Horde: Rename BlobLocator -> BundleLocator. The regular API does not allow directly fetching individual blobs by name any more.
...
[CL 26225915 by Ben Marsh in ue5-main branch]
2023-06-24 10:39:30 -04:00
Ben Marsh
ee56115397
Horde: Remove methods for reading and writing bundles from IStorageClient. This is now an implementation detail specific to types derived from BundleStorageClient.
...
[CL 26225812 by Ben Marsh in ue5-main branch]
2023-06-24 09:09:10 -04:00
Ben Marsh
dcb955aaef
Horde: Rename NodeLocator -> BundleNodeLocator.
...
[CL 26177183 by Ben Marsh in ue5-main branch]
2023-06-22 05:02:43 -04:00
Ben Marsh
2c12658c40
Horde: Remove HostId and BlobId classes from BlobLocators, and replace them with an opaque path. The backend can decide how to interpret this path as it sees fit.
...
[CL 26177089 by Ben Marsh in ue5-main branch]
2023-06-22 04:56:06 -04:00
Ben Marsh
d5ffd173f9
Horde: Include a hash in node locators.
...
[CL 25903979 by Ben Marsh in ue5-main branch]
2023-06-09 16:45:51 -04:00
Ben Marsh
7d5e31784a
Horde: Start merging implementations of blobs and nodes in IStorageClient.
...
* Rename NodeType -> BlobType, NodeData -> BlobData, and NodeHandle -> BlobHandle.
* Add methods to BlobHandle to allow partial reads of payload, and querying refs and type without fetching all data.
[CL 25895881 by Ben Marsh in ue5-main branch]
2023-06-09 11:57:14 -04:00
Ben Marsh
d9c08c3a83
Horde: Prevent direct access to locators in node handles, to allow implementations to delay computation until they have been flushed.
...
[CL 25850133 by Ben Marsh in ue5-main branch]
2023-06-07 13:19:54 -04:00
Ben Marsh
c6246d9472
Horde: Reverting CL 25709378; storing hashes with node locators/handles removes a lot of complexity, and makes it easier for clients to cache data.
...
#preflight 647a06955e71ee4db648158f
[CL 25762879 by Ben Marsh in ue5-main branch]
2023-06-02 11:35:51 -04:00
Ben Marsh
f77f72cd32
Horde: More refactoring of storage API to hide bundle implementation details.
...
- Rename StorageClientBase to BundleStorageClient. The current implementation assumes that bundles will be used for storage.
- Use ReadAsync() methods on NodeHandle to expand content, rather than requiring a TreeReader to be passed around.
#preflight none
[CL 25737520 by Ben Marsh in ue5-main branch]
2023-06-01 15:43:22 -04:00
Ben Marsh
a4e2059326
Horde: Abstract out logic for building bundles into an interface, so implementations can choose not to use it if they desire.
...
#preflight 6477f5eb313d43282fcf9a9f
[CL 25724155 by Ben Marsh in ue5-main branch]
2023-06-01 08:39:27 -04:00
Ben Marsh
221ce42510
Horde: Remove hashes from node handles by default. A separate HashedNodeHandle type bundles the handle with a hash value for round-tripping data through NodeRef objects.
...
#preflight none
[CL 25709378 by Ben Marsh in ue5-main branch]
2023-05-31 14:41:23 -04:00
Ben Marsh
193f272227
Horde: Add missing setter for new tool deployments.
...
#preflight none
[CL 25569028 by Ben Marsh in ue5-main branch]
2023-05-22 15:37:51 -04:00
Ben Marsh
993bb47657
Horde: Accept duration of tool deployment in minutes, rather than parsing a timestamp value.
...
#preflight none
[CL 25568435 by Ben Marsh in ue5-main branch]
2023-05-22 14:58:54 -04:00
Ben Marsh
aaebad6863
Horde: Allow uploading tools through multiple blob writes.
...
#preflight none
[CL 25567601 by Ben Marsh in ue5-main branch]
2023-05-22 14:08:03 -04:00
Ben Marsh
f779f2f24c
Horde: Use a struct that wraps a string to represent ACL actions, rather than an enum. This allows more flexibility and extensibility in where ACL actions can be defined.
...
#preflight none
#fyi Joakim.Lindqvist
[CL 25086472 by Ben Marsh in ue5-main branch]
2023-04-18 10:53:15 -04:00
Ben Marsh
4e9dc1d512
Horde: Allow downloading tools as single files if there are no other files or directories in them.
...
#preflight none
[CL 25047688 by Ben Marsh in ue5-main branch]
2023-04-14 15:27:08 -04:00
Ben Marsh
637187c618
Horde: Rename the Horde.Build project to Horde.Server.
...
#preflight none
[CL 24688228 by Ben Marsh in ue5-main branch]
2023-03-17 09:50:40 -04:00