IT人材をお探しの方は、まずはお電話ください。担当営業がすぐにご要望にマッチした人材をご提案いたします。
tel:03-6409-6766 お急ぎの方はお電話ください

ブログTOP > IT・技術関連 > SalesforceにおけるcreateObjecturlとは?詳細や注意点をご紹介

SalesforceにおけるcreateObjecturlとは?詳細や注意点をご紹介

IT・技術関連 更新日:2024.09.05
エンジニア採用
SalesforceにおけるcreateObjecturlとは?詳細や注意点をご紹介

SalesforceにおけるcreateObjecturlとは? createObjecturlは、引数で指定されたオブジェクトを示すURLを含んだ「DOMString」を生成します。 もしオブジェクトURLを解放するのであれば、「revokeObjecturl()」 を呼び出す必要があります。 SalesforceでのcreateObjecturlの使用方法を知ることで、Salesforceでの転職を考えている人、Salesforceを転職候補に考えている人の役に立ちます。 例)

objectURL = URL.createObjectURL(object);

SalesforceにおけるcreateObjecturlの概要

createObjecturlはURLのメソッドで、「Blob」や「File」を参照するための一時的URLを作成します。 引数ではURLを作成する「Blob」や「File」を指定し、作成したオブジェクトURLを返します。URLはドキュメントが生きている間のみ有効で、別ページに遷移するなどでunloadした場合は無効になります。 作成したURLは「revokeObjecturl」で削除できます。メモリを解放するために、不要になったURLは毎回削除しましょう。 例)
static DOMString createObjectURL(Blob blob);

オブジェクトURLについて

オブジェクトURLはオブジェクトに便宜的なユニークIDを付けることにより、そのIDとURLの種類を組み合わせてできる文字列のことです。 作成した文字列は、ブラウザでURLとして解釈します。ブラウザがオブジェクトURLを管理する仕組みに移ると、対応するデータを取得することができます。

オブジェクトURLの作成について

「File API」などで取得したFileオブジェクトは、createObjecturlの引数に渡すとオブジェクトURLを取得することができます。 後に続く文字列はcreateObjecturl呼び出し時に他と重複しないよう、作成されます。作成された文字列は、オブジェクトが同一かどうか確認をしていないため、同じオブジェクトであっても呼び出すたびに違うオブジェクトURLが作成されます。 例)
const objectUrl = URL.createObjectURL( obj );

Blobの保持

JavaScriptは他からの参照がないオブジェクトを自動的にメモリ上から削除します。 「File API」などで作成されたBlobオブジェクトの場合、不要であれば削除します。ただし、createObjecturlでオブジェクトURLを作成した場合は、Blobオブジェクトへの参照が作られるので、もし不要になったとしても削除されることはありません。

Blobの参照削除

Blobオブジェクトの削除はrevokeObjecturlを使用し、「Blob URLストア」内から参照を削除しなければなりません。 revokeObjectURLは、引数で与えられたオブジェクトURLと一致するものを検索することで、「Blob URLストア」内から参照を削除します。 例)
URL.revokeObjectURL( objectUrl );

JavaScriptでのファイル操作

ファイルに書き込むFile APIには、APIが4種類あります。 「BlobBuilder」はバイナリ・オブジェクトの構築を実施し、「FileSaver」はBlobファイルに名前を付け、保存する機能などを提供します。 「FileWriter」は非同期処理によるファイルへの書き込みと保存、「FileWriterSync」は同期処理によるファイルへの書き込みと保存を実施します。

createObjecturlでのテキストリンク作成

「createObjecturlメソッド」にファイルオブジェクトを指定すると、Blobに応じてパラメータに指定したファイルを一意のURLに変換できます。 ブラウザに応じて必要なプレフィックスを付け、「BlobBuilderオブジェクト」を生成します。次に「appendメソッド」を使ってテキストエリアに入力された文字列を、「BlobBuilderオブジェクト」に追加します。 そして「createObjectURLメソッド」にファイルオブジェクトを決めてパラメータに指定したファイルを一意のURLに変換されます。

動的に生成された.pdfにファイル名を付けるには

動的に生成された.pdfに、意味のある名前を割り当てる方法を説明します。 Chromeで埋め込み.pdfビューアの場合、.pdfは問題なく動作します。.pdfは独自タブで表示され、タブには意味のあるファイル名がつきます。 しかしChromeでAcrobat Readerを使って画像を表示する場合は、新しい「空白のタブ」を表示しても、createObjecturlによって割り当てられたGUIDで表示しても、正常に動作しない場合があります。 解決策としては、ファイルを開く前に「ファイル名を付けて保存」する方法がありますが、ファイルが自動的に開かれない場合ことがあります。そこでWebサーバで「PDF」と「ファイル名」を生成し、リモートでリンクを渡すことです。 サーバで生成されることで、より一貫したタイムスタンプが渡されます。これで同一のドキュメントを論理的に参照できるようになります。

createObjecturlのエラー

SalesforceでcreateObjecturlを使用したことによるエラーが発生した場合は、Salesforceサポートチームに問い合わせしてみましょう。 createObjecturlを使用したことで「コンポーネントエラー」が発生することがあります。カスタム画像のサイズ変更などすると、アップデート後にエラーが発生することがあります。 エラーの原因がわからない場合は、Salesforceサポートチームに問い合わせすると、解決策を教えてくれます。 例)
img.src = _URL.createObjectURL(file);

外部システムからのダウンロード

Salesforceの外部のシステムから、API連携で画像ファイルなど取得する場合は処理を実装する必要があります。 Visualforceで実装することで、APIコールを行うことなく、静的リソースからバイナリーデータを取得し、疑似的に「HttpResponse」の値を取得します。 まず、ファイルダウンロード時にダウンロードするファイル名を取得し、一致する静的リソースのファイルを取得します。次に取得したファイルを静的リソースのBodyを「base64エンコード」でStringとして、変数に保持します。 処理完了後、「oncomplete」でJavaScriptのメソッドを実行します。「base64文字列」と「MIMEタイプ」を使用し、Blobオブジェクトを作成した後、それを利用して「createObjecturlメソッド」と「linkダウンロード属性」を使います。

SalesforceでcreateObjecturlを活用しよう

今回はSalesforceの標準設定機能の1つである「createObjecturl」について紹介しました。 createObjecturlは、Fileオブジェクトの「Blob URL」を作成するもので、PCのメモリ上にあるリソースを指し示しています。 FileReaderのreadAsDataurlメソッドを使用することで、fileオブジェクトを元にURLを作成できますが、これはURLエンコードされたファイルになります。 そのため、ファイルを読み込んで「Data URL」を作成することで、JavaScriptエンジンにファイルサイズに比例したメモリを確保します。 createObjecturlの使用方法を理解することで、転職活動に活かしていきましょう。]]>

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニアAWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。

・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
ITエンジニアの派遣を利用したい企業様へ
ITエンジニアを派遣で採用したい企業様へ
  • 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
  • すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!

当社のITエンジニア派遣サービスは

  • 派遣スピードが速い!(最短即日)
  • 4,500名のエンジニアから貴社にマッチした人材を派遣
  • 正社員雇用も可能

こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。

無料相談のお申し込みはこちら
IT・技術関連の記事一覧へ

カテゴリから記事を探す

すべての記事一覧へ