2017-12-15 8 views
0

に、私は私がS3FileInfoを取得S3AWSSDK.S3 TransferUtility.Uploadファイルは常にルート

その後
oTransferUtility.Upload("C:\\junk\\fae123.png", strBucket, "Media\\Cache\\f\\fae123.png"); 

上の既存のフォルダにファイルをアップロードしようとしているC#.NETでAWSSDK.S3を使用していて終了します私はそれが偽のExistsプロパティをチェックすると、私はバケツをinpectとき、私はルートに代わりのフォルダ内のファイルを見つけ、

var oS3FileInfo = new S3FileInfo(oAmazonS3Client, strBucket, "Media\\Cache\\f\\fae123.png"); 

ファイル。

私は、フォルダ内に既に存在するファイルを見つけることができるので、私は正しくファイルパス(別名キー)を作成していることを知っています。例えば

Existsプロパティをチェックすると、それは当てはまります。

誰でもこの問題を見ていますか?


は私も成功しません、次を試してみましたが、それはまた、これは、しかし、私は解決策を発見したAWSのバグ、あるルート

TransferUtilityUploadRequest oTransferUtilityUploadRequest = new TransferUtilityUploadRequest(); 

oTransferUtilityUploadRequest.FilePath = "C:\\junk\\fae123.png"; 
oTransferUtilityUploadRequest.Key = "Media\\Cache\\f\\fae123.png"; 
oTransferUtilityUploadRequest.BucketName = existingBucketName; 

oTransferUtility.Upload(oTransferUtilityUploadRequest); 

答えて

0

にすべてのアップロードをダンプします。

が明示的に

S3DirectoryInfo oDirectory = new S3DirectoryInfo(oAmazonS3Client, strBucket, "Media\\Cache\\f\\"); 
if (!oDirectory.Exists) 
    oDirectory.Create(); 

開きS3のディレクトリオブジェクトからS3のファイルが欠落している場合S3フォルダを作成し、そのファイルがまだ存在しない場合は、あなたがそれに書くとき、それが作成されます重要ではありません。 。

3FileInfo oS3FileInfo = oDirectory.GetFile("fae123.png"); 
using (System.IO.Stream stmTargetFileS3 = oS3FileInfo.OpenWrite()) 
{ 
    using (System.IO.Stream stmLocalFile = System.IO.File.OpenRead("C:\\junk\\fae123.png")) 
     stmLocalFile.CopyTo(stmTargetFileS3); 
} 

これは、上書きされたファイルで正しく動作し、LastWriteTimeの更新を反映します。

関連する問題