         path: String? = nil,
         subresource: String? = nil,
         acl: AmazonS3ACL? = nil,
-        storageClass: AmazonS3StorageClass = .Standard) -> NSURLRequest {
+        storageClass: AmazonS3StorageClass = .Standard,
+        metaData:[String : String] = [:]) -> NSURLRequest {
             let url = requestURL(path, subresource: subresource)
             
             var mutableURLRequest = NSMutableURLRequest(URL: url)

    
    private func setStorageClassHeaders(inout forRequest request: NSMutableURLRequest, storageClass: AmazonS3StorageClass) {
        request.setValue(storageClass.rawValue, forHTTPHeaderField: "x-amz-storage-class")
    }
    
    private func currentTimeStamp() -> String {

            acl?.setACLHeaders(forRequest: &mutableURLRequest)
            
            setStorageClassHeaders(forRequest: &mutableURLRequest, storageClass: storageClass)
            
            setMetaDataHeaders(metaData, forRequest: &mutableURLRequest)
            
            setAuthorizationHeaders(forRequest: &mutableURLRequest)
            
