Struct shadow_drive_sdk::models::ShadowFile
source · pub struct ShadowFile {
pub name: String,
pub data: Payload,
/* private fields */
}Expand description
ShadowFile is the combination of a file name and a Payload.
Fields§
§name: String§data: PayloadImplementations§
source§impl ShadowFile
impl ShadowFile
pub fn name(&self) -> &str
sourcepub fn file<T: AsRef<Path>>(name: String, path: T) -> Self
pub fn file<T: AsRef<Path>>(name: String, path: T) -> Self
Examples found in repository?
examples/end_to_end.rs (line 36)
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
async fn main() {
// Get keypair
let keypair_file: String = std::env::args()
.skip(1)
.next()
.expect("no keypair file provided");
let keypair: Keypair = read_keypair_file(keypair_file).expect("failed to read keypair file");
println!("loaded keypair");
// Initialize client
let client = ShadowDriveClient::new(keypair, SOLANA_MAINNET_RPC);
println!("initialized client");
// Create account
let response = client
.create_storage_account(
"test",
Byte::from_bytes(2_u128.pow(20)),
shadow_drive_sdk::StorageAccountVersion::V2,
)
.await
.expect("failed to create storage account");
let account = Pubkey::from_str(&response.shdw_bucket.unwrap()).unwrap();
println!("created storage account");
// Upload files
let files: Vec<ShadowFile> = vec![
ShadowFile::file("alpha.txt".to_string(), "./examples/files/alpha.txt"),
ShadowFile::file(
"not_alpha.txt".to_string(),
"./examples/files/not_alpha.txt",
),
];
let response = client
.store_files(&account, files.clone())
.await
.expect("failed to upload files");
println!("uploaded files");
for url in &response.finalized_locations {
println!(" {url}")
}
// Try editing
for file in files {
let response = client
.edit_file(&account, file)
.await
.expect("failed to upload files");
assert!(!response.finalized_location.is_empty(), "failed edit");
println!("edited file: {}", response.finalized_location);
}
// Delete files
for url in response.finalized_locations {
client
.delete_file(&account, url)
.await
.expect("failed to delete files");
}
println!("deleted files");
// Delete account
client
.delete_storage_account(&account)
.await
.expect("failed to delete storage account");
println!("deleted account");
}pub fn bytes<T: Into<Bytes>>(name: String, data: T) -> Self
Trait Implementations§
source§impl Clone for ShadowFile
impl Clone for ShadowFile
source§fn clone(&self) -> ShadowFile
fn clone(&self) -> ShadowFile
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more