1
0
mirror of https://github.com/actix/examples synced 2025-02-02 09:39:03 +01:00

update rusoto_core = "0.43.0-beta.1" (#252)

This commit is contained in:
cheolgyu 2020-02-14 07:50:04 +09:00 committed by GitHub
parent 691812f3f4
commit 007e194ad2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 15 deletions

View File

@ -11,8 +11,8 @@ futures = "0.3.1"
actix-multipart = "0.2.0" actix-multipart = "0.2.0"
actix-web = "2.0.0" actix-web = "2.0.0"
actix-rt = "1.0.0" actix-rt = "1.0.0"
rusoto_s3 = "0.42.0" rusoto_s3 = "0.43.0-beta.1"
rusoto_core = "0.42.0" rusoto_core = "0.43.0-beta.1"
bytes = { version = "0.5", features = ["serde"] } bytes = { version = "0.5", features = ["serde"] }
serde = { version = "1.0.104", features=["derive"] } serde = { version = "1.0.104", features=["derive"] }
serde_json = "1.0" serde_json = "1.0"

View File

@ -1,5 +1,5 @@
use crate::rusoto_s3::S3; use crate::rusoto_s3::S3;
use rusoto_core::{ProvideAwsCredentials, Region, RusotoError}; use rusoto_core::{Region, RusotoError, RusotoFuture};
use rusoto_s3::{DeleteObjectRequest, PutObjectRequest, S3Client}; use rusoto_s3::{DeleteObjectRequest, PutObjectRequest, S3Client};
use std::io::Read; use std::io::Read;
use std::io::Write; use std::io::Write;
@ -31,7 +31,7 @@ impl Client {
) )
} }
pub fn put_object(&self, localfilepath: &str, key: &str) -> String { pub async fn put_object(&self, localfilepath: &str, key: &str) -> String {
let mut file = std::fs::File::open(localfilepath).unwrap(); let mut file = std::fs::File::open(localfilepath).unwrap();
let mut contents: Vec<u8> = Vec::new(); let mut contents: Vec<u8> = Vec::new();
file.read_to_end(&mut contents); file.read_to_end(&mut contents);
@ -44,13 +44,13 @@ impl Client {
let res = self let res = self
.s3 .s3
.put_object(put_request) .put_object(put_request)
.sync() .await
.expect("Failed to put test object"); .expect("Failed to put test object");
self.url(key) self.url(key)
} }
pub fn delete_object(&self, key: String) { pub async fn delete_object(&self, key: String) {
let delete_object_req = DeleteObjectRequest { let delete_object_req = DeleteObjectRequest {
bucket: self.bucket_name.to_owned(), bucket: self.bucket_name.to_owned(),
key: key.to_owned(), key: key.to_owned(),
@ -60,7 +60,7 @@ impl Client {
let res = self let res = self
.s3 .s3
.delete_object(delete_object_req) .delete_object(delete_object_req)
.sync() .await
.expect("Couldn't delete object"); .expect("Couldn't delete object");
} }
} }

View File

@ -47,15 +47,15 @@ impl Tmpfile {
} }
} }
fn s3_upload_and_tmp_remove(&mut self, s3_upload_key: String) { async fn s3_upload_and_tmp_remove(&mut self, s3_upload_key: String) {
self.s3_upload(s3_upload_key); self.s3_upload(s3_upload_key).await;
self.tmp_remove(); self.tmp_remove();
} }
fn s3_upload(&mut self, s3_upload_key: String) { async fn s3_upload(&mut self, s3_upload_key: String) {
let key = format!("{}{}", &s3_upload_key, &self.name); let key = format!("{}{}", &s3_upload_key, &self.name);
self.s3_key = key.clone(); self.s3_key = key.clone();
let url: String = Client::new().put_object(&self.tmp_path, &key.clone()); let url: String = Client::new().put_object(&self.tmp_path, &key.clone()).await;
self.s3_url = url; self.s3_url = url;
} }
@ -107,11 +107,12 @@ pub async fn save_file(
) -> Result<Vec<UplodFile>, Error> { ) -> Result<Vec<UplodFile>, Error> {
let mut arr: Vec<UplodFile> = Vec::new(); let mut arr: Vec<UplodFile> = Vec::new();
let mut iter = tmp_files.iter(); let mut iter = tmp_files.iter();
let mut index = 0;
// iterate over multipart stream
while let Some(item) = iter.next() { while let Some(item) = iter.next() {
let mut tmp_file: Tmpfile = item.clone(); let mut tmp_file: Tmpfile = item.clone();
tmp_file.s3_upload_and_tmp_remove(s3_upload_key.clone()); tmp_file
.s3_upload_and_tmp_remove(s3_upload_key.clone())
.await;
arr.push(UplodFile::from(tmp_file)); arr.push(UplodFile::from(tmp_file));
} }
Ok(arr) Ok(arr)
@ -119,6 +120,6 @@ pub async fn save_file(
pub async fn delete_object(mut list: Vec<String>) { pub async fn delete_object(mut list: Vec<String>) {
for key in list { for key in list {
Client::new().delete_object(key); Client::new().delete_object(key).await;
} }
} }