有关如何自定义媒体URL生成的问题

2020-09-22 00:22发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好, 我正在尝试将CDN用于...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好,

我正在尝试将CDN用于媒体项目。 目的是自定义媒体项的URL字段的生成。 我知道我必须使用MediaURLStrategy来实现这一点,但不幸的是,它不起作用。

这就是我所做的:

  • 在我的自定义网址策略中实现了MediaURLStrategy接口

  • 在local.properties中配置了媒体文件夹以使用此自定义url策略

  • 当我在后台打开媒体项目时,将调用自定义网址策略

  • 不幸的是,仅通过策略设置了downloadURL。 媒体项目的网址保持空白。

现在我的问题是:如何确保自定义策略为给定文件夹中的媒体项目分配了正确的URL?

我没有创建自定义MediaStorageStrategy,因为我不明白为什么需要这样一个。

提前谢谢!

11条回答
SKY徐
2020-09-22 00:28

这是我的MediaUrlStrategy。

 软件包de.censored.core.cdn;
 
  导入de.hybris.platform.media.MediaSource;
  导入de.hybris.platform.media.storage.MediaStorageConfigService.MediaFolderConfig;
  导入de.hybris.platform.media.url.MediaURLStrategy;
 
  导入java.util.Objects;
 
  导入org.apache.log4j.Logger;
 
  公共类CloudinaryMediaURLStrategy实现MediaURLStrategy {
      私有静态最终字符串CONFIG_URL_TEMPLATE_KEY =" url.template";
 
      私有静态最终字符串DEFAULT_URL_TEMPLATE =" http://localhost/media/%% asset-id %%";
 
      私有静态最终字符串ASSET_ID =" %% asset-id %%";
 
      私有静态最终Logger LOG = Logger.getLogger(CloudinaryMediaURLStrategy.class);
 
      @Override
      public String getUrlForMedia(最终MediaFolderConfig paramMediaFolderConfig,最终MediaSource媒体){
          Objects.requireNonNull(media,"媒体为空。");
 
          返回getUrlInternal(paramMediaFolderConfig,media);
      }
 
      私有字符串getUrlInternal(最终MediaFolderConfig paramMediaFolderConfig,最终MediaSource mediaSource){
          最终的字符串assetId = mediaSource.getLocation();
 
          Objects.requireNonNull(assetId," AssetId为null");
 
          返回getUrlPattern(paramMediaFolderConfig).replace(ASSET_ID,assetId);
      }
 
      私有字符串getUrlPattern(final MediaFolderConfig配置){
          返回config.getParameter(CONFIG_URL_TEMPLATE_KEY,String.class,DEFAULT_URL_TEMPLATE);
      }
 
  }
 
  

一周热门 更多>