anchor.diff:          }
   
           member __.DefaultDirectory = defaultDir
  -        member this.DeleteDirectory(directory, recursiveDelete) = async {
  +
  +        member __.DeleteDirectory(directory, recursiveDelete) = async {
               
   //            let req = DeleteObjectsRequest(BucketName = bucketName)
   //            req.Objects.Add(new KeyVersion())
  
positive.code:         }
          
          member __.GetFileSize(path) = async {
              let req = GetObjectMetadataRequest(BucketName = bucketName, Key = path)
              let! res = account.S3Client.GetObjectMetadataAsync(req)
                         |> Async.AwaitTaskCorrect
              return res.ContentLength
          }
          member __.GetLastModifiedTime(path, isDirectory) = failwith "Not implemented yet"
  
negative.code:         }
          
          member __.TryGetETag(path) = async {
              let! res = getObjMetadata path |> Async.Catch
              match res with
              | Choice1Of2 res -> return Some res.ETag
              | _ -> return None
          }
  
          member __.UploadFromLocalFile(localSourcePath, cloudTargetPath) = async {
              do! account.S3Client.UploadObjectFromFilePathAsync(
                      bucketName, 
                      cloudTargetPath, 
                      localSourcePath, 
                      Dictionary<string, obj>())
                  |> Async.AwaitTaskCorrect
          }
  
          member __.UploadFromStream(path, stream) = async {
              do! account.S3Client.UploadObjectFromStreamAsync(
                      bucketName,
                      path,
                      stream,
                      Dictionary<string, obj>())
                  |> Async.AwaitTaskCorrect
          }
  
          member this.WriteETag(path, writer) = async {
              let! metaRes = getObjMetadata path
              let! result = async {
                  use stream = new MemoryStream()
                  let! result = writer(stream)
                  do! (this :> ICloudFileStore).UploadFromStream(path, stream)
                  return result
              }
  
              return metaRes.ETag, result
          }
          
          //#endregion
  
  