尝试将二进制文件部署到已存储其他二进制文件的位置

时间:2012-09-17 11:51:37

标签: tridion tridion2009 tridion-content-delivery

当我从tridio 2009发布我的页面时,我收到以下错误:

Destination with name 'FTP=[Host=servername, Location=\RET, Password=******, Port=21, UserName=retftp]' reported the following failure:
A processing error occurred processing a transport package Attempting to deploy a binary [Binary id=tcm:553-974947-16 variantId= sg= path=/Images/image_thumbnail01.jpg] to a location where a different binary is already stored Existing binary: tcd:pub[553]/binarymeta[974950]

以下是我的代码段

Component bigImageComp = th.GetComponentValue("bigimage", imageMetaFields);
string bigImagefileName = string.Empty;
string bigImagePath = string.Empty;
bigImagefileName = bigImageComp.BinaryContent.Filename;
bigImagePath = m_Engine.AddBinary(bigImageComp.Id, TcmUri.UriNull, null, bigImageComp.BinaryContent.GetByteArray(), Path.GetFileName(bigImagefileName));
imageBigNode.InnerText = bigImagePath;

请建议

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:3)

通常在Tridion Content Delivery中,我们只能保留一个版本的Component。要获得MMC的多个“版本”,我们必须将MMC发布为变体。通过这种方式,我们可以通过模板生成尽可能多的变体。

您可以参考以下文章了解更多详情:

http://yatb.mitza.net/2012/03/publishing-images-as-variants.html#!/2012/03/publishing-images-as-variants.html

答案 2 :(得分:2)

添加二进制文件时,必须确保文件及其元数据是唯一的。如果其中一个值,例如文件名似乎相同但其余元数据不匹配,则部署将失败。

在给定的示例中(如Nuno所指出的),二进制910正在尝试部署在二进制文件703上。文件名是相同的但是二进制文件被识别为不相同(在这种情况下,来自同一出版物的不同ID) )。对于此示例,您将需要重命名其中一个二进制文件(文件本身或更改路径),一切都会正常。

其他方案可以是从两个不同的模板使用相同的图像,并且模板ID用作变量ID。如果是这种情况,则它是相同的图像,但是变量ID检查失败,因此为了避免覆盖同一图像,部署者将其失败。

通常,取消发布可能有所帮助,但只有在删除对它的所有引用时才会删除图像。因此,如果从多个地方使用它,则会有更多的开放引用。

这是对部署者的合理保护。您不希望错误的图像替换另一个图像,或者扰乱布局或者可能将内容更改为另一个会议(想想广告横幅)。

这是上述问题的真正原因和原因(来自论坛的东西)