Skip to content

Instantly share code, notes, and snippets.

@alex-samborskiy
alex-samborskiy / policy.json
Created December 20, 2020 13:36
[Private sub-folder os S3 bucket] #aws #s3
{
"Sid": "AllowAccessToAllExceptPrivate",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Effect": "Allow",
"NotResource": [
"arn:aws:s3:::bucket/prefix1/prefix2/private/*",
"arn:aws:s3:::bucket/prefix1/prefix2/private"
@alex-samborskiy
alex-samborskiy / snipet.js
Created January 30, 2020 11:46
[task qith memody usage] #task
/**
всем привет. просьба к опытным разрабам: помогите решить проблему плс.
задача: получить стрим большого файла (пол гига примерно) и обрабатывать его чанками, что бы не хранить весь файл в памяти и не ждать полной загрузки файла.
проблема: написав следующий код я обнаружил, что по мере загрузки файла увеличивается использование памяти, при чем только rss, в то время как heap стабильно очищается. как видно в логах после полной прогрузки файла и выхода из функции main (по идее все ссылки на dataStream должны очиститься garbage collector-ом) rss все еще занимает 64mb. в реальном проекте таких файлов много и желательно обрабатывать их параллельно, но из-за того что использование памяти постоянно растет, приложение просто падает.
вопрос: почему так происходит (может это баг ноды?) и можно ли до закрытия стрима удалять из памяти чанки, которые уже обработаны?
гуглить пробовал. проверять дампы памяти в chrome inspect-е тоже - там только ссылки на какие-то внутренние объекты движка.
*/
const https = require('https
@alex-samborskiy
alex-samborskiy / mass-delete.js
Created January 3, 2020 15:02
[Mass operations DDB] #DynamoDB
var AWS = require("aws-sdk");
AWS.config.update({
region : "us-west-2",
endpoint : "http://localhost:8000"
});
var documentclient = new AWS.DynamoDB.DocumentClient();
var itemsArray = [];
@alex-samborskiy
alex-samborskiy / create-gsi.js
Created June 6, 2019 14:14
[Create Seciondery Global Index to existing DDB table] #DynamoDB
const DynamoDB = require('aws-sdk/clients/dynamodb');
const dynamoDB = new DynamoDB();
dynamoDB.updateTable(
{
TableName: `development-publication-tasks`,
AttributeDefinitions: [
{ AttributeName: 'sort_key', AttributeType: 'S' },
{ AttributeName: 'attributeChanged', AttributeType: 'S' }
],
GlobalSecondaryIndexUpdates: [
@alex-samborskiy
alex-samborskiy / get_last_item.js
Created May 30, 2019 08:39
[DynamoDB get last added item] #DynamoDB
const params = {
TableName: TASKS_TABLE_NAME,
KeyConditionExpression: '#account_id = :account_id and begins_with(#sort_key, :sort_key)',
ExpressionAttributeNames: {
'#account_id': 'account_id',
'#sort_key': 'sort_key'
},
ExpressionAttributeValues: {
':account_id': `account_id=${accountId}`,
':sort_key': `changelog#${taskSortKey}`
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowPublicReadAccess",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
@alex-samborskiy
alex-samborskiy / remove.attribute.js
Last active June 5, 2019 16:05 — forked from organizm/remove.attribute.js
[Remove nested attribute in DynamoDB]#DynamoDB
const docClient = new AWS.DynamoDB.DocumentClient();
const params = {
TableName : "customer",
Key : {
"customerId": "customer_001"
},
UpdateExpression : "REMOVE address.street3",
ReturnValues : "UPDATED_NEW"
};
@alex-samborskiy
alex-samborskiy / command.txt
Created March 15, 2019 15:02
public key is not available: NO_PUBKEY 23E7166788B63E1E
ERROR:
An error occurred during the signature verification. The repository is not updated and the previous index files will be used.
GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures couldn't be verified because the
public key is not available: NO_PUBKEY 23E7166788B63E1E
SOLUTION:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
@alex-samborskiy
alex-samborskiy / default
Last active March 13, 2019 10:04
PureConnect CIC Web Applications config for nginx
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
FROM php:7.0.4-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev \
mysql-client libmagickwand-dev --no-install-recommends \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& docker-php-ext-install mcrypt pdo_mysql