次のコードを使用してIBM Cloud Object Storage(ICOS)にアップロードしようとしましたが、一部のファイルをアップロードできませんでした。 失敗したファイルには、ファイル名に記号「[」または「]」が含まれています。
TransferUtility Utl = new TransferUtility(objClient);
TransferUtilityUploadDirectoryRequest request = new TransferUtilityUploadDirectoryRequest
{
BucketName = "Correct Backet name"
Directory = "Correct directory name" ex. "C:\\testd1\\testd2"
KeyPrefix = "Correct prefix"
SearchOption = SearchOption.AllDirectories,
SearchPattern = "*.*"
};
Utl.UploadDirectory(request);
Language:.NET C#
API:AWSSDK.Core 3.3.22.5、AWSSDK.S3 3.3.18.2
例外名:Amazon.S3.AmazonS3Exception
メッセージ:「無効な引数」
InnerException名:Amazon.Runtime.Internal.HttpErrorResponseException
メッセージ:「リモートサーバーからエラーが返されました:(400)Bad Request」
「test.txt」などの通常の名前のファイルは問題なくアップロードできます。
この現象は、AWS S3または別のS3互換ストレージサービスでは発生しません。
(ただし、他のS3互換サービスの1つだけを試しました...)
なぜICOSにアップロードできないのか、どのような解決策があるのか教えてください
よろしく。
アドバイスをありがとう。
次のことをしたい:
-アップロードソースファイルの名前には記号「[」と「]」が含まれていますが、ファイル名を変更したくありません。
ただし、アップロードされた宛先ファイル名(=オブジェクトキー?)は変更できます。
-「UploadDirectory」メソッドを使用してファイルをアップロードしたい。バケットに作成するオブジェクトのキー名を指定して、「UploadDirectory」メソッドでアップロードする方法を検索しました。 しかし、私は良い方法で到着しませんでした。
「UploadDirectory」メソッドを使用して、作成するオブジェクトのキー名を指定できないと思います。 (したがって、エンコードはできないと思います。)
ICOSでは、「UploadDirectory」メソッドを使用してファイル名に「[」または「]」を含むファイルをアップロードすることはできませんか?
関連記事
- レンタルしたクラウドサーバーにウェブサイトをアップロードする
- Firebaseストレージルールはクラウドストレージの権限を上書きしますか?
- 多くの配列を含むオブジェクトから配列を削除する方法
- アップロードせずにS3オブジェクトをトリガーする
- TensorflowクラウドトレーニングのためにトレーニングデータをGoogleにアップロードする方法
- Google Cloud StorageBucketでPHPを実行する
- 新しいmongoDBオブジェクトの参照S3ファイルアップロード名
- FirebaseStorageとCloudFirestore/Realtime Databaseの違いは何ですか?
- React Native、クラウドストレージの画像を表示する方法
- Cloud Storage forFirebaseで画像サイズを制限する方法
これは、AWSが公開された制限を厳密に実施していない場合のようです。 AWS S3のドキュメントによれば、「すべてのアプリケーションで一貫性を保つための重要な特別な処理のため、キー名に次の文字を使用しないでください。」
バックスラッシュ( "\")
左中括弧( "{")
印刷できないASCII文字(10進数で128〜255文字)
キャレット( "^")
右中括弧( "}")
パーセント文字( "%")
グレイヴアクセント/バックティック( "` ")
右角かっこ( "]")
引用符
「より大きい」記号( ">")
左角かっこ( "[")
ティルド( "〜")
「より小さい」記号( "<")
「ポンド」文字( "#")
垂直バー/パイプ( "|")
URLエンコード(
[object-key]
->%5Bobject-key%5D
)すべて正常です。ザ・UrlEncode(string)
HttpUtility
からのメソッド クラスが役立つ場合があります(ドキュメント)。