【问题标题】:Kentico 10 - Files not synced to AWS S3Kentico 10 - 文件未同步到 AWS S3
【发布时间】:2021-04-29 15:57:08
【问题描述】:

我们正在尝试将 AWS S3 集成到我们的 Kentico 10 应用程序中。

我点击了这个链接:

https://docs.xperience.io/k10/custom-development/working-with-physical-files-using-the-api/configuring-file-system-providers/configuring-amazon-s3#ConfiguringAmazonS3-Medialibrarynotes

我在 App_Code => CMSModules => AWSS3 => AWSS3Module.cs 中创建了以下模块

这是 AWSS3Module.cs 的代码

using CMS;
using CMS.DataEngine;
using CMS.EventLog;
using CMS.IO;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;

/*
    Make sure following entries exists in web.config => <appSettings>

    <add key="CMSAmazonBucketName" value="" />
    <add key="CMSAmazonAccessKeyID" value="" />
    <add key="CMSAmazonAccessKey" value="" />

    <add key="CMSAmazonPublicAccess" value="true" />
    <add key="CMSAmazonEndPoint" value="" /> 
*/

[assembly: RegisterModule(typeof(AWSS3Module))]

/// <summary>
/// Summary description for AWSS3Module
/// </summary>
public class AWSS3Module: Module
{
    public AWSS3Module(): base("AWSS3Module")
    {
        //
        // TODO: Add constructor logic here
        //
    }

    // Initializes the module. Called when the application starts.
    protected override void OnInit()
    {
        base.OnInit();

        // Assigns a handler to the Insert.After event for OfficeInfo objects
        EventLogProvider.LogInformation("AWSS3 module", "OnInit", "This code is running");

        // Creates a new StorageProvider instance
        AbstractStorageProvider mediaProvider = new StorageProvider("Amazon", "CMS.AmazonStorage");

        // Specifies the target bucket
        mediaProvider.CustomRootPath = ConfigurationManager.AppSettings["CMSAmazonBucketName"];

        // Makes the bucket publicly accessible
        mediaProvider.PublicExternalFolderObject = true;

        // Maps a directory to the provider
        StorageHelper.MapStoragePath("~/Sitename/", mediaProvider);
    }
}

我在其中一篇文章中读到,只有新文件会被同步。我尝试在媒体文件夹中添加一些文件,但在存储桶中没有添加任何文件。

日志中没有错误。另外,我可以看到该模块已加载到日志中。

存储桶策略似乎正确,或者我在日志中找不到问题。

我做错了什么?

另外,如果上传了文件,我如何获取该文件的 S3 URL?

【问题讨论】:

    标签: amazon-s3 kentico


    【解决方案1】:

    检查此部分:

    StorageHelper.MapStoragePath("~/Sitename/", mediaProvider);
    

    确保“/Sitename/”是媒体库使用的实际文件夹!

    你在这里所做的基本上就是告诉 Kentico 有一种“替代”方式将文件存储在文件夹“x”中。如果您的媒体库没有存储在那个确切的文件夹中,它不会做任何事情。

    【讨论】:

      猜你喜欢
      • 2020-05-01
      • 2021-05-11
      • 2016-02-22
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 2019-12-16
      相关资源
      最近更新 更多