小编Nik*_*man的帖子

AWS S3存储桶的备份策略

我正在寻找一些建议或最佳实践来备份S3存储桶.
从S3备份数据的目的是为了防止数据丢失,原因如下:

  1. S3问题
  2. 我不小心从S3删除了这个数据的问题

经过一番调查后,我看到以下选项:

  1. 使用版本控制http://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html
  2. 使用AWS SDK从一个S3存储桶复制到另一个存储桶
  3. 备份到亚马逊冰川http://aws.amazon.com/en/glacier/
  4. 备份到生产服务器,它本身已备份

我应该选择什么选项以及仅在S3上存储数据的安全性如何?想听听你的意见.
一些有用的链接:

backup amazon-s3 amazon-web-services amazon-glacier

70
推荐指数
6
解决办法
6万
查看次数

在Elastic Beanstalk上使用Docker部署.NET Core Web API

我正在尝试使用Docker将最初的.NET Core Web API部署到Elastic Beanstalk,但没有任何成功.


源代码

我在Visual Studio中创建了一个全新的.NET Core Web API项目,并保持生成的示例代码不变.之后,我添加了一个Dockerfile项目的根目录,其中包含以下内容:

FROM microsoft/dotnet:onbuild

EXPOSE 5000
Run Code Online (Sandbox Code Playgroud)

为了您的好奇心,这里是.NET docker repo的链接.

之后,我在hosting.json项目的根目录中创建了一个文件.我想将Kestrel服务器绑定到容器的所有IP.该hosting.json文件包含以下内容:

{
    "urls": "http://*:5000"
}
Run Code Online (Sandbox Code Playgroud)

为了确保应用程序正在加载该配置文件,我将我的Main方法更改为:

public static void Main(string[] args)
{
    var config = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("hosting.json", optional: false)
        .Build();

    var host = new WebHostBuilder()
       .UseKestrel()
       .UseContentRoot(Directory.GetCurrentDirectory())
       .UseIISIntegration()
       .UseStartup<Startup>()
       .UseConfiguration(config)
       .Build();

    host.Run();
}
Run Code Online (Sandbox Code Playgroud)

如果需要,这里是文件的hosting.json文档.

最后,即使我根据AWS文档不需要它,我在Dockerrun.aws.json项目的根目录中创建了一个包含以下内容:

{
    "AWSEBDockerrunVersion": "1"
}
Run Code Online (Sandbox Code Playgroud)

所有这些在我的本地机器上运行得很好.我使用以下命令运行它:

docker build …
Run Code Online (Sandbox Code Playgroud)

windows amazon-web-services docker amazon-elastic-beanstalk .net-core

9
推荐指数
1
解决办法
1464
查看次数

使用受保护的继承

在准备考试时,我正在查看旧考试,但有一个问题我找不到答案。我没有正确答案的答案,我的老师已经 MIA 有一段时间了。这个问题最初不是英文的。

假设从类燮像一个类继承CI: class CI : protected Sup {。为什么这不是分类继承?

c++

4
推荐指数
1
解决办法
92
查看次数

覆盖notifyDataSetChanged()

我有一个自定义ArrayAdapter.当ListViews中显示数据时,我总是希望它排序,因此我尝试覆盖notifyDataSetChanged()以首先对适配器进行排序,如下所示:

@Override
public void notifyDataSetChanged() {
    sort(new Comparator<IceContact>() {
        @Override
        public int compare(IceContact iceContact, IceContact iceContact2) {
            return iceContact.compareTo(iceContact2);
        }
    });
    super.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

IceContact类是一个实现Comparable的get-set类.不幸的是,这给了我一个具有讽刺意味的StackOverflowError(下面的logcat).然后我试着反过来做.直接覆盖sort()notifyDataSetChanged()直接调用,如下所示:

@Override
public void sort(Comparator<? super IceContact> comparator) {
    super.sort(comparator);
    notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

这很好用!有谁能解释为什么?感觉它们几乎完全相同.


01-21 18:25:50.725: ERROR/AndroidRuntime(2490): FATAL EXCEPTION: main
    java.lang.StackOverflowError
    at android.view.View.setFocusableInTouchMode(View.java:5584)
    at android.widget.AdapterView.checkFocus(AdapterView.java:717)
    at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:812)
    at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:6044)
    at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
    at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
    at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:286)
    at se.naxiait.curbits.utils.IceContactAdapter.notifyDataSetChanged(IceContactAdapter.java:70)
    at android.widget.ArrayAdapter.sort(ArrayAdapter.java:278)
    at se.naxiait.curbits.utils.IceContactAdapter.notifyDataSetChanged(IceContactAdapter.java:71)
    at android.widget.ArrayAdapter.sort(ArrayAdapter.java:278)
    at se.naxiait.curbits.utils.IceContactAdapter.notifyDataSetChanged(IceContactAdapter.java:71)
    at android.widget.ArrayAdapter.sort(ArrayAdapter.java:278)
    at se.naxiait.curbits.utils.IceContactAdapter.notifyDataSetChanged(IceContactAdapter.java:71)
    at android.widget.ArrayAdapter.sort(ArrayAdapter.java:278)
    at se.naxiait.curbits.utils.IceContactAdapter.notifyDataSetChanged(IceContactAdapter.java:71)
    at …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter

3
推荐指数
1
解决办法
8505
查看次数