代码之家  ›  专栏  ›  技术社区  ›  Akiner Alkan

如何将从S3和Rusoto下载的文件保存到我的硬盘?

  •  1
  • Akiner Alkan  · 技术社区  · 7 年前

    我正在尝试从Rusoto的bucket中下载文件,我正在获取文件内容:

    fn get_object(client: &TestClient, bucket: &str, filename: &str) {
        let get_req = GetObjectRequest {
            bucket: bucket.to_owned(),
            key: filename.to_owned(),
            ..Default::default()
        };
    
        let result = client.get_object(&get_req).sync().expect("Couldn't GET object");
    
    
        let stream = result.body.unwrap();
        let body = stream.concat2().wait().unwrap();
    
        assert!(body.len() > 0);
    }
    

    我怎么能保存这个 GetObjectOutput(result) 反对文件?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Ferruccio    7 年前

    你就快到了。您的代码将把对象放入 body ,这是一个 Vec<u8> .

    写的内容 身体 到文件:

    use std::io::Write;
    use std::fs::File;
    
    let mut file = File::create("/path/to/my-object").expect("create failed");
    file.write_all(&body).expect("failed to write body");