複数レコードに同一画像をアップロードする方法はないでしょうか?

複数レコードに同一画像をアップロードする方法はございませんでしょうか?
下記がイメージとなります。

別商品でも同一ブランドの場合はブランド画像も同じものを使います。
この時、レコード毎に画像をアップロードしては、画像のデータ容量が商品数分必要となり、サーバを圧迫してしまいます。

商品Aとブランドロゴを登録が完了した場合に、商品Gまで同一画像を使う方法はないでしょうか?登録操作を商品数分を手動で行う分には構いません。
コマンドラインからレコードを更新できるのであれば、それでも構いません。

例)レコードイメージ

商品名|ブランドロゴ画像 ・・・テーブルヘッダ

商品A|ブランドロゴ画像1 ・・・テーブルデータ
商品B|ブランドロゴ画像1

商品G|ブランドロゴ画像1
商品H|ブランドロゴ画像2

商品Z|ブランドロゴ画像2

同一ブランドで100商品あれば、同一画像を100回アップロードしないといけないため困っております。

皆様のお力をお借りできれば幸いです!何卒よろしくお願いいたします。

small wave様

コマンドラインツールを使えば、添付ファイルを一括してアップロードできますが、
意図と合っていますか?
もし、解釈に誤りがなければ、こちらを参考にされると良いかと思います。
kintone コマンドラインツール
第5回 kintone コマンドラインツールで添付ファイル操作をしてみよう(一括ダウンロード・アップロード)
cli-kintone を使った添付ファイルの移行方法のメモ

$idを使えば追加、更新を同時に行うこともできます。
参考になれば幸いです。

small wave さん

結論から言うと kintone の仕様として、アップロードした画像を使い回すことはできません。

下記コードのように、アップロードした画像で2つのレコードを作成しようとすると、2つ目のレコードで処理が失敗します。

(() => {
  const blob = new Blob(['Sample Test File'], { type: 'text/plain' });
  const formData = new FormData();
  formData.append(' __REQUEST_TOKEN__', kintone.getRequestToken());
  formData.append('file', blob, 'test.txt');

  const url = '/k/v1/file.json';
  const xhr = new XMLHttpRequest();
  xhr.open('POST', url);
  xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
  xhr.onload = async () => {
    if (xhr.status !== 200) {
      console.error(JSON.parse(xhr.responseText));
      return;
    }

    const file = JSON.parse(xhr.responseText);
    const app = kintone.app.getId();

    await kintone.api('/k/v1/record', 'POST', {
      app,
      record: { 添付ファイル: { value: [file] } },
    });
  // ここはエラーになる
   await kintone.api('/k/v1/record', 'POST', {
      app,
      record: { 添付ファイル: { value: [file] } },
    });
  };
  xhr.send(formData);
})();

サーバーの容量を圧迫することを防ぐ別のアイディアとしては、ブランドのアプリと、商品のアプリを作成し、商品のアプリからルックアップで参照すれば画像を重複して登録する必要はありません。以下、アプリのイメージになります。

 

ブランドアプリ

※関連テーブルで商品を取得しています。

 

商品アプリ

※ブランドロゴ画像を表示するために、関連テーブルでブランドを取得しています。

※レコード一覧では関連テーブルのデータを表示することができないため、ブランドロゴ画像は表示できません。

 

以上になります。参考になれば幸いです。

TO様

ご返信ありがとうございます。

意図としては、複数画像をアップロードしたわけではなく。

同一画像を複数レコードに一括設定できないかという意味でございました。

 

川村様

いつもありがとうございます!

kintoneの仕様でしたか、、ワードプレスみたいにメディアがあれば良かったのですが残念です。

やはり別アプリをルックアップするのが手っ取り早いですよね。。

やりたいことが複雑になると、アプリがデータベースそのものになってきてアプリの数も増えていきそうです泣

利用者の運用が複雑にならないように検討してみます。ファイルのアップロードはGoogleドキュメントにアップしてURLだけkintoneに入れておくなど。

 

 

アプリの設計によるかとは思いますが、
画像は別アプリに入れておいて、関連レコードで呼び出すという手もあります。
関連レコードでの表示で良さそうであればコードを書かなくても運用を工夫することで実現できると思います。

運用アイデアならキンコミというコミュニティの方が適していると思うのでアイデア募集してみるのもありかと思います。

キンコミ
https://kincom.cybozu.co.jp/