示例#1
0
        // note that if the folder already exists and is owned by the current user
        // this will also return the folder name (which could be interpreted has if the folder has been created
        // which is false since the folder already existed)
        public static string  create_Folder(this API_AmazonS3 amazonS3, string newFolderName)
        {
            amazonS3.debugMsg("[API_AmazonS3]: creating folder :{0}", newFolderName);
            var putBucketResponse = amazonS3.create_S3_Bucket(newFolderName);

            return((putBucketResponse.notNull())
                                                ? newFolderName
                                                : "");
        }
示例#2
0
        public static PutObjectResponse add_S3_Object(this API_AmazonS3 amazonS3, string targetBucket, string fileToAdd)
        {
            var putObjectRequest = new PutObjectRequest();

            putObjectRequest.WithBucketName(targetBucket);
            putObjectRequest.WithCannedACL(S3CannedACL.PublicRead);             // make it publicly available buy default
            putObjectRequest.WithFilePath(fileToAdd);
            return(amazonS3.S3Client.PutObject(putObjectRequest));
        }
示例#3
0
        public static string  delete_File(this API_AmazonS3 amazonS3, string bucket, string fileToDelete)
        {
            amazonS3.debugMsg("[API_AmazonS3]: deleting file :{0}/{1}", bucket, fileToDelete);
            var deleteObjectResponse = amazonS3.delete_S3_Object(bucket, fileToDelete);

            return((deleteObjectResponse.notNull())
                                                ? fileToDelete
                                                : "");
        }
示例#4
0
        public static string  delete_Folder(this API_AmazonS3 amazonS3, string folderToDelete)
        {
            amazonS3.debugMsg("[API_AmazonS3]: deleting folder :{0}", folderToDelete);
            var deleteBucketResponse = amazonS3.delete_S3_Bucket(folderToDelete);

            return((deleteBucketResponse.notNull())
                                                ? folderToDelete
                                                : "");
        }
示例#5
0
 public static DeleteBucketResponse delete_S3_Bucket(this API_AmazonS3 amazonS3, string folderToDelete)
 {
     try
     {
         var deleteBucketRequest = new DeleteBucketRequest();
         deleteBucketRequest.WithBucketName(folderToDelete);
         return(amazonS3.S3Client.DeleteBucket(deleteBucketRequest));
     }
     catch (Exception ex)
     {
         ex.log("[API_AmazonS3]: in create_S3_Bucket()");
     }
     return(null);
 }
示例#6
0
 public static PutBucketResponse  create_S3_Bucket(this API_AmazonS3 amazonS3, string newBucketName)
 {
     try
     {
         var putBucketRequest = new PutBucketRequest();
         putBucketRequest.WithBucketName(newBucketName);
         return(amazonS3.S3Client.PutBucket(putBucketRequest));
     }
     catch (Exception ex)
     {
         ex.log("[API_AmazonS3]: in create_S3_Bucket()");
     }
     return(null);
 }
示例#7
0
 public static DeleteObjectResponse delete_S3_Object(this API_AmazonS3 amazonS3, string bucket, string keyToDelete)
 {
     try
     {
         var deleteObjectRequest = new DeleteObjectRequest();
         deleteObjectRequest.WithBucketName(bucket);
         deleteObjectRequest.WithKey(keyToDelete);
         return(amazonS3.S3Client.DeleteObject(deleteObjectRequest));
     }
     catch (Exception ex)
     {
         ex.log("[API_AmazonS3]: in delete_S3_Object()");
     }
     return(null);
 }
示例#8
0
        public static List <S3Object> s3_ObjectsRaw(this API_AmazonS3 amazonS3, string bucketName)
        {
            try
            {
                amazonS3.debugMsg("[API_AmazonS3]: retriving objects list for bucket:{0}", bucketName);

                var listObjectsRequest = new ListObjectsRequest();
                listObjectsRequest.WithBucketName(bucketName);
                return(amazonS3.S3Client.ListObjects(listObjectsRequest).S3Objects);
            }
            catch (Exception ex)
            {
                ex.log("[API_AmazonS3]: in s3_ObjectsRaw()");
            }
            return(new List <S3Object>());
        }
示例#9
0
 public static List <S3Bucket> s3_BucketsRaw(this API_AmazonS3 amazonS3)
 {
     try
     {
         amazonS3.debugMsg("[API_AmazonS3]: retriving buckets list");
         var listBucketsResponse = amazonS3.S3Client.ListBuckets();
         if (listBucketsResponse.notNull())
         {
             return(listBucketsResponse.Buckets);
         }
     }
     catch (Exception ex)
     {
         ex.log("[API_AmazonS3]: in bunckets()");
     }
     return(new List <S3Bucket>());
 }
示例#10
0
 public static Thread showFilesInTreeView(this API_AmazonS3 amazonS3, TreeView treeView, string folderName)
 {
     treeView.backColor("LightPink");
     // we need to run the next code in a separate thread or the treeView.backColor update doesn't show
     if (folderName.valid())
     {
         return(O2Thread.mtaThread(
                    () => {
             treeView.clear();
             var files = amazonS3.files(folderName);
             foreach (var file in files)
             {
                 var url = "{0}/{1}/{2}".format(amazonS3.defaultS3Server, folderName, file);
                 treeView.add_Node(file, url.uri());
             }
             treeView.backColor("White");
         }));
     }
     return(null);
 }
示例#11
0
        public static T showFileInControl <T>(this API_AmazonS3 amazonS3, T control, Uri uri)
            where T : Control
        {
            if (uri.isNull())
            {
                return(control);
            }
            control.clear();
            switch (uri.str().extension())
            {
            case ".gif":
                control.add_PictureBox().loadFromUri(uri);
                break;

            default:
                var fileContents = uri.getUrlContents();
                control.add_TextArea().set_Text(fileContents);
                break;
            }
            return(control);
        }
示例#12
0
 public static List <String> s3_Objects(this API_AmazonS3 amazonS3, string bucketName)
 {
     return((from s3_Object in amazonS3.s3_ObjectsRaw(bucketName)
             select s3_Object.Key).toList());
 }
示例#13
0
 public static List <String> files(this API_AmazonS3 amazonS3, string bucketName)
 {
     return(amazonS3.s3_Objects(bucketName));
 }
示例#14
0
 public static List <String> s3_Buckets(this API_AmazonS3 amazonS3)
 {
     return((from bucket in amazonS3.s3_BucketsRaw()
             select bucket.BucketName).toList());
 }
示例#15
0
 public static List <String> folders(this API_AmazonS3 amazonS3)
 {
     return(amazonS3.s3_Buckets());
 }