0

エントリとともにアセットを追加したいと考えています。フォームを使用してデータを入力し、cloudinary を使用して画像をアップロードしています。Contentful-Management から 409 ステータス コードと「バージョンの不一致」エラーが表示されます。最初は、エントリを公開せず、古いバージョンのエントリを持っていることが原因である可能性があると考えました. しかし、私は自分のコードを調べて、具体的に修正しました。

これらは私が以下に取っているステップです(私が見落としたステップを見た場合は追加してください、それは大歓迎です)

#1 Get Space With Id
#2 Get Environment
#3 Create Entry
#4 Reassign Entry to have latest Version
#5 Asset Creation
#6 Asset Publish
#7 Update Entry With New Asset

以下は私のエラーメッセージです:

ここに画像の説明を入力

 async function createEntryWithAsset(
        data: Omit<Property, "id">,
        uploadHref: string
      ) {
        // #1 Get Space
        const space = await client.getSpace(process.env.NEXT_CONTENTFUL_SPACE_ID);
        // #2 Get Environment
        const environment = await space.getEnvironment("master");
    
        // #3 Create Entry
        let entry = await environment.createEntry("propertyListings", {
          fields: {
            /* ... */
          },
        });
        // #4 Reassign Entry to have latest version
        entry = await entry.publish();
    
        // #5 Asset Creation
        let asset = await environment.createAssetWithId(
          faker.datatype.number(4).toString(),
          {
            fields: {
              title: {
                "en-US": "images",
              },
              file: {
                "en-US": {
                  contentType: "image/jpeg",
                  fileName: faker.datatype.number(5) + "-" + data.zipcode + ".jpg",
                  upload: uploadHref,
                },
              },
            },
          }
        );
        // #6 Asset Publish
        asset = await asset.processForAllLocales()
        asset = await asset.publish();
    
          //#7 Update Entry With New Asset
        entry.fields["images"] = {
         'en-US': {
           sys: {
            id: asset.sys.id,
            linkType: "Asset",
            type: "Link",
          }},
        };  
        entry = await entry.update();
        entry = await entry.publish();
      }
4

0 に答える 0