Uploads files from a specified directory.
The object key is derived from the file names
inside the directory.
For large uploads, the file will be divided and uploaded in parts using
Amazon S3's multipart API. The parts will be reassembled as one object in
Amazon S3.

C# |
public void UploadDirectory( string directory, string bucketName, string searchPattern, SearchOption searchOption )

- directory (String)
- The source directory, that is, the directory containing the files to upload.
- bucketName (String)
- The target Amazon S3 bucket, that is, the name of the bucket to upload the files to.
- searchPattern (String)
- A pattern used to identify the files from the source directory to upload.
- searchOption (SearchOption)
- A search option that specifies whether to recursively search for files to upload in subdirectories.

If you are uploading large files, TransferUtility will use multipart upload to fulfill the request. If a multipart upload is interrupted, TransferUtility will attempt to abort the multipart upload. Under certain circumstances (network outage, power failure, etc.), TransferUtility will not be able to abort the multipart upload. In this case, in order to stop getting charged for the storage of uploaded parts, you should manually invoke TransferUtility.AbortMultipartUploads() to abort the incomplete multipart uploads.