0

コンテナーに次の名前の BLOB のリストがあります

例えば。アイテム1 アイテム2 アイテム3 アイテム9 アイテム10 アイテム12 アイテム45

この場合、item1 と item45 である最初と最後のブロブを取得したい

ただし、cloudblobclient.cloudblobdirectory.listblobs.last を使用すると、必要なものではなく、item9 が返されました。リストから最後の項目 (45) を取得する最良の方法は何でしょうか。

完全なリストを実行することしか考えられず、各項目について、文字「item」の後の数字を取得し、その数字を以前の高値または安値と比較します。最初の4文字が固定なので、「item」とhigherCntを結合します。

for each blobitem in listblobs
  iCurrCnt = numeric(blobitem.uri.absolutepath.substring(4)) 
  if iCurrCnt > iHigherCnt then
  iHigherCnt = iCurrCnt 

したがって、最後の blob (item45):

strHighestCntFileName = "item" + iHigherCnt

これを行う別の方法はありますか?アイテム リストが数千になると、パフォーマンスが心配になります。最初と最後のブロブだけに興味があります。ありがとう!

4

1 に答える 1

1

これを達成するには、次の方法があると思います。

  • コンテナーに存在するすべての BLOB のリストを取得してから、必要なファイラー BLOB を取得します。

  • コンテナーに存在する BLOB を一覧表示するときに、BLOB プレフィックスを使用します。したがって、最初と最後のブロブ名がわかっている場合は、それをブロブ プレフィックスで使用できます。これにより、指定されたブロブ プレフィックスに一致するブロブのリストが返されます。

お役に立てれば。

よろしく、 アミット・ジャイン www.cerebrata.com

于 2011-04-08T06:00:30.350 に答える