public void DeleteFile(string path)
        {
            path = CleanPath(path);
            var file = new S3FileInfo(_client, _amazonS3StorageConfiguration.AWSFileBucket, path);

            file.Delete();
        }
        /// <summary>
        ///     Move feature with source delete and option for overwrite.
        /// </summary>
        /// <param name="file"></param>
        /// <param name="path"></param>
        /// <param name="overwrite"></param>
        /// <returns>FileInfo</returns>
        public static FileInfo MoveToLocal(this S3FileInfo file, string path, bool overwrite)
        {
            var localFile = file.CopyToLocal(path, overwrite);

            file.Delete();
            return(localFile);
        }
Example #3
0
        /// <summary>
        /// Implementation of the ZephyrFile Delete method in Amazon S3 Storage.
        /// </summary>
        /// <param name="stopOnError">Throw an exception when an error occurs.</param>
        /// <param name="verbose">Log details of file deleted.</param>
        /// <param name="callbackLabel">Optional "label" to be passed into the callback method.</param>
        /// <param name="callback">Optional method that is called for logging purposes.</param>
        public override void Delete(bool stopOnError = true, bool verbose = true, string callbackLabel = null, Action <string, string> callback = null)
        {
            try
            {
                if (_client == null)
                {
                    throw new Exception($"AWSClient Not Set.");
                }

                S3FileInfo fileInfo = new S3FileInfo(_client.Client, BucketName, ObjectKey);

                if (fileInfo.Exists)
                {
                    if (IsOpen)
                    {
                        Close();
                    }
                    fileInfo.Delete();
                }

                if (verbose)
                {
                    Logger.Log($"File [{FullName}] Was Deleted.", callbackLabel, callback);
                }
            }
            catch (Exception e)
            {
                Logger.Log(e.Message, callbackLabel, callback);
                if (stopOnError)
                {
                    throw;
                }
            }
        }
        /// <summary>
        /// Delete Directory from S3
        /// </summary>
        /// <param name="uploadDirectory"></param>
        /// <param name="bucket"></param>
        /// <returns></returns>
        public bool DeleteAsset(string bucket, string uploadDirectory)
        {
            try
            {
                S3DirectoryInfo directoryToDelete = new S3DirectoryInfo(_client, bucket, uploadDirectory);

                var directoryFiles = directoryToDelete.EnumerateFiles();
                foreach (S3FileInfo file in directoryFiles)
                {
                    S3FileInfo filetoDelete = new S3FileInfo(_client, bucket, file.FullName.Replace(bucket + ":\\", string.Empty));
                    if (filetoDelete.Exists)
                    {
                        filetoDelete.Delete();
                    }
                }


                if (directoryToDelete.Exists)
                {
                    directoryToDelete.Delete(false);
                    return(true);
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception.InnerException.Message);

                return(false);
            }
            return(false);
        }
Example #5
0
 public static void DeleteFileInAmazonS3(string bucketName, string fileName)
 {
     using (AmazonS3Client client = new AmazonS3Client())
     {
         S3FileInfo s3FileInfo = new S3FileInfo(client, bucketName, fileName);
         if (s3FileInfo.Exists)
         {
             s3FileInfo.Delete();
         }
     }
 }
Example #6
0
        public void DeleteFile(string path)
        {
            if (!IsFileExists(path))
            {
                throw new InvalidOperationException("File " + path + " does not exist");
            }

            var fileInfo = new S3FileInfo(_amazonS3, _bucketName, path);

            fileInfo.Delete();
        }
Example #7
0
        public Stream GetObjectStream(string bucketName, string objectKey, S3FileMode fileMode = S3FileMode.Open, S3FileAccess fileAccess = S3FileAccess.Read)
        {
            Stream     stream     = null;
            S3FileInfo file       = new S3FileInfo(client, bucketName, objectKey);
            bool       fileExists = file.Exists;

            if (fileMode == S3FileMode.Create || fileMode == S3FileMode.CreateNew || fileMode == S3FileMode.Truncate)
            {
                if (fileExists)
                {
                    if (fileMode == S3FileMode.CreateNew)
                    {
                        throw new Exception($"Object [s3://{bucketName}/{objectKey}] Already Exists.");
                    }
                    file.Delete();
                }
                else if (fileMode == S3FileMode.Truncate)
                {
                    throw new Exception($"Object [s3://{bucketName}/{objectKey}] Does Not Exist.");
                }

                stream = file.Create();
            }
            else if (fileMode == S3FileMode.Open || fileMode == S3FileMode.OpenOrCreate)
            {
                if (!fileExists)
                {
                    if (fileMode == S3FileMode.Open)
                    {
                        throw new Exception($"Object [s3://{bucketName}/{objectKey}] Does Not Exist.");
                    }
                    stream = file.Create();
                    stream.Close();
                }

                if (fileAccess == S3FileAccess.Read)
                {
                    stream = file.OpenRead();
                }
                else
                {
                    stream = file.OpenWrite();
                }
            }

            return(stream);
        }
Example #8
0
 public override void Delete()
 {
     BackingFile.Delete();
 }